static const char httpd_conf[] = "httpd.conf";
static const char home[] = "./";
-#ifdef CONFIG_LFS
+#if ENABLE_LFS
# define cont_l_fmt "%lld"
# define cont_l_type (long long)
#else
const char *configFile;
unsigned int rmt_ip;
-#if defined(CONFIG_FEATURE_HTTPD_CGI) || DEBUG
+#if ENABLE_FEATURE_HTTPD_CGI || DEBUG
char rmt_ip_str[16]; /* for set env REMOTE_ADDR */
#endif
unsigned port; /* server initial port and for
Htaccess_IP *ip_a_d; /* config allow/deny lines */
int flg_deny_all;
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
Htaccess *auth; /* config user:password lines */
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
Htaccess *mime_a; /* config mime types */
#endif
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
int accepted_socket;
# define a_c_r config->accepted_socket
# define a_c_w config->accepted_socket
#endif
volatile int alarm_signaled;
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
Htaccess *script_i; /* config script interpreters */
#endif
} HttpdConfig;
0, "application/octet-stream" /* default */
};
-typedef enum
-{
+typedef enum {
HTTP_OK = 200,
HTTP_MOVED_TEMPORARILY = 302,
HTTP_BAD_REQUEST = 400, /* malformed syntax */
#endif
} HttpResponseNum;
-typedef struct
-{
+typedef struct {
HttpResponseNum type;
const char *name;
const char *info;
"No request appeared within a reasonable time period." },
{ HTTP_NOT_IMPLEMENTED, "Not Implemented",
"The requested method is not recognized by this server." },
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
{ HTTP_UNAUTHORIZED, "Unauthorized", "" },
#endif
{ HTTP_NOT_FOUND, "Not Found",
static const char Content_length[] = "Content-length:";
-static int
-scan_ip (const char **ep, unsigned int *ip, unsigned char endc)
+static int scan_ip(const char **ep, unsigned int *ip, unsigned char endc)
{
const char *p = *ep;
int auto_mask = 8;
return auto_mask;
}
-static int
-scan_ip_mask (const char *ipm, unsigned int *ip, unsigned int *mask)
+static int scan_ip_mask(const char *ipm, unsigned int *ip, unsigned int *mask)
{
int i;
unsigned int msk;
i = 0;
while (*p) {
- if (*p < '0' || *p > '9') {
- if (*p == '.') {
- i = scan_ip (&ipm, mask, 0);
- return i != 32;
- }
- return -1;
+ if (*p < '0' || *p > '9') {
+ if (*p == '.') {
+ i = scan_ip(&ipm, mask, 0);
+ return i != 32;
}
- i *= 10;
- i += *p - '0';
- p++;
+ return -1;
+ }
+ i *= 10;
+ i += *p - '0';
+ p++;
}
}
if (i > 32 || i < 0)
- return -1;
+ return -1;
msk = 0x80000000;
*mask = 0;
while (i > 0) {
return 0;
}
-#if defined(CONFIG_FEATURE_HTTPD_BASIC_AUTH) || defined(CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES)
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH || ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
static void free_config_lines(Htaccess **pprev)
{
Htaccess *prev = *pprev;
static void parse_conf(const char *path, int flag)
{
FILE *f;
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
Htaccess *prev, *cur;
#elif CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
Htaccess *cur;
config->flg_deny_all = 0;
-#if defined(CONFIG_FEATURE_HTTPD_BASIC_AUTH) || defined(CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES) || defined(CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR)
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH || ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES || ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
/* retain previous auth and mime config only for subdir parse */
if (flag != SUBDIR_PARSE) {
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
free_config_lines(&config->auth);
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
free_config_lines(&config->mime_a);
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
free_config_lines(&config->script_i);
#endif
}
cf = httpd_conf;
}
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
prev = config->auth;
#endif
/* This could stand some work */
- while ( (p0 = fgets(buf, sizeof(buf), f)) != NULL) {
+ while ((p0 = fgets(buf, sizeof(buf), f)) != NULL) {
c = NULL;
for (p = p0; *p0 != 0 && *p0 != '#'; p0++) {
if (!isspace(*p0)) {
if (*p0 == 'a')
*p0 = 'A';
else if (*p0 != 'D' && *p0 != 'A'
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
&& *p0 != '/'
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
&& *p0 != '.'
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
&& *p0 != '*'
#endif
)
/* storing current config IP line */
pip = calloc(1, sizeof(Htaccess_IP));
if (pip) {
- if (scan_ip_mask (c, &(pip->ip), &(pip->mask))) {
+ if (scan_ip_mask(c, &(pip->ip), &(pip->mask))) {
/* syntax IP{/mask} error detected, protect all */
*p0 = 'D';
pip->mask = 0;
}
continue;
}
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
if (*p0 == '/') {
/* make full path from httpd root / curent_path / config_line_path */
cf = flag == SUBDIR_PARSE ? path : "";
} else if ((cf[1] == '.') && (cf[2] == '/' || cf[2] == 0)) {
++cf;
if (p > p0) {
- while (*--p != '/'); /* omit previous dir */
+ while (*--p != '/') /* omit previous dir */;
}
continue;
}
}
#endif
-#if defined(CONFIG_FEATURE_HTTPD_BASIC_AUTH) || defined(CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES) || defined(CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR)
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH || ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES || ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
/* storing current config line */
cur = calloc(1, sizeof(Htaccess) + strlen(p0));
if (cur) {
c = strchr(cf, ':');
*c++ = 0;
cur->after_colon = c;
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
if (*cf == '.') {
/* config .mime line move top for overwrite previous */
cur->next = config->mime_a;
continue;
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
if (*cf == '*' && cf[1] == '.') {
/* config script interpreter line move top for overwrite previous */
cur->next = config->script_i;
continue;
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
free(p0);
if (prev == NULL) {
/* first line */
fclose(f);
}
-#ifdef CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
+#if ENABLE_FEATURE_HTTPD_ENCODE_URL_STR
/****************************************************************************
*
> $Function: encodeString()
}
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
/****************************************************************************
*
> $Function: addEnv()
*
****************************************************************************/
static void addEnv(const char *name_before_underline,
- const char *name_after_underline, const char *value)
+ const char *name_after_underline, const char *value)
{
char *s = NULL;
const char *underline;
}
}
-#if defined(CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV) || defined(CONFIG_FEATURE_HTTPD_WITHOUT_INETD)
+#if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV || ENABLE_FEATURE_HTTPD_WITHOUT_INETD
/* set environs SERVER_PORT and REMOTE_PORT */
static void addEnvPort(const char *port_name)
{
#endif /* CONFIG_FEATURE_HTTPD_CGI */
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
/****************************************************************************
*
> $Function: decodeBase64()
#endif
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
/****************************************************************************
*
> $Function: openServer()
/* tell the OS it's OK to reuse a previous address even though */
/* it may still be in a close down state. Allows bind to succeed. */
#ifdef SO_REUSEPORT
- setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (void *)&on, sizeof(on)) ;
+ setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (void *)&on, sizeof(on));
#else
- setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on)) ;
+ setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on));
#endif
xbind(fd, (struct sockaddr *)&lsocket, sizeof(lsocket));
xlisten(fd, 9);
"Date: %s\r\nConnection: close\r\n",
responseNum, responseString, mime_type, timeStr);
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
if (responseNum == HTTP_UNAUTHORIZED) {
len += sprintf(buf+len, "WWW-Authenticate: Basic realm=\"%s\"\r\n",
config->realm);
else return -1;
}
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
/****************************************************************************
*
> $Function: sendCgi()
addEnv("SERVER", "PROTOCOL", "HTTP/1.0");
addEnv("GATEWAY_INTERFACE", "", "CGI/1.1");
addEnv("REMOTE", "ADDR", config->rmt_ip_str);
-#ifdef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
+#if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
addEnvPort("REMOTE");
#endif
if (bodyLen) {
addEnv("HTTP", "COOKIE", cookie);
if (content_type)
addEnv("CONTENT", "TYPE", content_type);
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
if (config->remoteuser) {
addEnv("REMOTE", "USER", config->remoteuser);
addEnv("AUTH_TYPE", "", "Basic");
// now run the program. If it fails,
// use _exit() so no destructors
// get called and make a mess.
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
char *interpr = NULL;
char *suffix = strrchr(purl, '.');
}
#endif
*script = '/';
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
if (interpr)
execv(interpr, argp);
else
}
}
}
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
config->accepted_socket = 1; /* send to stdout */
#endif
sendHeaders(HTTP_NOT_FOUND);
}
/* also, if not found, set default as "application/octet-stream"; */
config->httpd_found.found_mime_type = *(table+1);
-#ifdef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
+#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
if (suffix) {
Htaccess * cur;
*
****************************************************************************/
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
static int checkPerm(const char *path, const char *request)
{
Htaccess * cur;
continue; /* find next identical */
p = cur->after_colon;
#if DEBUG
- fprintf(stderr,"checkPerm: '%s' ? '%s'\n", p0, request);
+ fprintf(stderr, "checkPerm: '%s' ? '%s'\n", p0, request);
#endif
{
size_t l = strlen(p0);
break;
}
-#ifdef CONFIG_FEATURE_HTTPD_AUTH_MD5
+#if ENABLE_FEATURE_HTTPD_AUTH_MD5
{
char *cipher;
char *pp;
}
#endif
if (strcmp(p, request) == 0) {
-#ifdef CONFIG_FEATURE_HTTPD_AUTH_MD5
+#if ENABLE_FEATURE_HTTPD_AUTH_MD5
set_remoteuser_var:
#endif
config->remoteuser = strdup(request);
char *test;
struct stat sb;
int ip_allowed;
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
const char *prequest = request_GET;
long length=0;
char *cookie = 0;
int retval;
struct sigaction sa;
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
int credentials = -1; /* if not requred this is Ok */
#endif
break;
}
*purl = 0;
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
if (strcasecmp(buf, prequest) != 0) {
prequest = "POST";
if (strcasecmp(buf, prequest) != 0) {
break;
}
/* algorithm stolen from libbb bb_simplify_path(),
- but don`t strdup and reducing trailing slash and protect out root */
+ but don't strdup and reducing trailing slash and protect out root */
purl = test = url;
do {
/* protect out root */
goto BAD_REQUEST;
}
- while (*--purl != '/'); /* omit previous dir */
- continue;
+ while (*--purl != '/') /* omit previous dir */;
+ continue;
}
}
}
fprintf(stderr, "Header: '%s'\n", buf);
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
/* try and do our best to parse more lines */
if ((strncasecmp(buf, Content_length, 15) == 0)) {
if (prequest != request_GET)
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
if (strncasecmp(buf, "Authorization:", 14) == 0) {
/* We only allow Basic credentials.
* It shows up as "Authorization: Basic <userid:password>" where
if (strcmp(strrchr(url, '/') + 1, httpd_conf) == 0 || ip_allowed == 0) {
/* protect listing [/path]/httpd_conf or IP deny */
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
FORBIDDEN: /* protect listing /cgi-bin */
#endif
sendHeaders(HTTP_FORBIDDEN);
break;
}
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
if (credentials <= 0 && checkPerm(url, ":") == 0) {
sendHeaders(HTTP_UNAUTHORIZED);
break;
test = url + 1; /* skip first '/' */
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
/* if strange Content-Length */
if (length < 0)
break;
config->last_mod = sb.st_mtime;
}
sendFile(test);
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
/* unset if non inetd looped */
config->ContentLength = -1;
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
}
}
#endif
} while (0);
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
-/* from inetd don`t looping: freeing, closing automatic from exit always */
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
+/* from inetd don't looping: freeing, closing automatic from exit always */
# if DEBUG
fprintf(stderr, "closing socket\n");
# endif
free(cookie);
free(content_type);
free(config->referer);
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
free(config->remoteuser);
#endif
# endif
shutdown(a_c_w, SHUT_WR);
/* Properly wait for remote to closed */
- FD_ZERO (&s_fd) ;
- FD_SET (a_c_r, &s_fd) ;
+ FD_ZERO(&s_fd);
+ FD_SET(a_c_r, &s_fd);
do {
- tv.tv_sec = 2 ;
- tv.tv_usec = 0 ;
- retval = select (a_c_r + 1, &s_fd, NULL, NULL, &tv);
- } while (retval > 0 && (read (a_c_r, buf, sizeof (config->buf)) > 0));
+ tv.tv_sec = 2;
+ tv.tv_usec = 0;
+ retval = select(a_c_r + 1, &s_fd, NULL, NULL, &tv);
+ } while (retval > 0 && read(a_c_r, buf, sizeof(config->buf) > 0));
shutdown(a_c_r, SHUT_RD);
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
close(config->accepted_socket);
#endif /* CONFIG_FEATURE_HTTPD_WITHOUT_INETD */
}
* $Return: (int) . . . . Always 0.
*
****************************************************************************/
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
static int miniHttpd(int server)
{
fd_set readfd, portfd;
}
config->accepted_socket = s;
config->rmt_ip = ntohl(fromAddr.sin_addr.s_addr);
-#if defined(CONFIG_FEATURE_HTTPD_CGI) || DEBUG
+#if ENABLE_FEATURE_HTTPD_CGI || DEBUG
sprintf(config->rmt_ip_str, "%u.%u.%u.%u",
(unsigned char)(config->rmt_ip >> 24),
(unsigned char)(config->rmt_ip >> 16),
/* set the KEEPALIVE option to cull dead connections */
on = 1;
- setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof (on));
+ setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on));
#if !DEBUG
if (fork() == 0)
#endif
{
/* This is the spawned thread */
-#ifdef CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
+#if ENABLE_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
/* protect reload config, may be confuse checking */
signal(SIGHUP, SIG_IGN);
#endif
static int miniHttpd(void)
{
struct sockaddr_in fromAddrLen;
- socklen_t sinlen = sizeof (struct sockaddr_in);
+ socklen_t sinlen = sizeof(struct sockaddr_in);
- getpeername (0, (struct sockaddr *)&fromAddrLen, &sinlen);
+ getpeername(0, (struct sockaddr *)&fromAddrLen, &sinlen);
config->rmt_ip = ntohl(fromAddrLen.sin_addr.s_addr);
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
sprintf(config->rmt_ip_str, "%u.%u.%u.%u",
(unsigned char)(config->rmt_ip >> 24),
(unsigned char)(config->rmt_ip >> 16),
}
#endif /* CONFIG_FEATURE_HTTPD_WITHOUT_INETD */
-#ifdef CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
+#if ENABLE_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
static void sighup_handler(int sig)
{
/* set and reset */
USE_FEATURE_HTTPD_WITHOUT_INETD(p_opt_port,)
};
-static const char httpd_opts[]="c:d:h:"
+static const char httpd_opts[] = "c:d:h:"
USE_FEATURE_HTTPD_ENCODE_URL_STR("e:")
USE_FEATURE_HTTPD_BASIC_AUTH("r:")
USE_FEATURE_HTTPD_AUTH_MD5("m:")
USE_FEATURE_HTTPD_AUTH_MD5(const char *pass;)
config = xzalloc(sizeof(*config));
-#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
config->realm = "Web Server Authentication";
#endif
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
config->port = 80;
#endif
printf("%s", decodeString(url_for_decode, 1));
return 0;
}
-#ifdef CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
+#if ENABLE_FEATURE_HTTPD_ENCODE_URL_STR
if (opt & OPT_ENCODE_URL) {
printf("%s", encodeString(url_for_encode));
return 0;
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_AUTH_MD5
+#if ENABLE_FEATURE_HTTPD_AUTH_MD5
if (opt & OPT_MD5) {
- printf("%s\n", pw_encrypt(pass, "$1$"));
+ puts(pw_encrypt(pass, "$1$"));
return 0;
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
if (opt & OPT_PORT)
config->port = bb_xgetlarg(s_port, 10, 1, 0xffff);
-#ifdef CONFIG_FEATURE_HTTPD_SETUID
+#if ENABLE_FEATURE_HTTPD_SETUID
if (opt & OPT_SETUID) {
char *e;
#endif
xchdir(home_httpd);
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
server = openServer();
# ifdef CONFIG_FEATURE_HTTPD_SETUID
/* drop privileges */
# endif
#endif
-#ifdef CONFIG_FEATURE_HTTPD_CGI
+#if ENABLE_FEATURE_HTTPD_CGI
{
char *p = getenv("PATH");
if (p) {
}
#endif
-#ifdef CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
+#if ENABLE_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
sighup_handler(0);
#else
parse_conf(default_path_httpd_conf, FIRST_PARSE);
#endif
-#ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
+#if ENABLE_FEATURE_HTTPD_WITHOUT_INETD
# if !DEBUG
- xdaemon(1, 0); /* don`t change curent directory */
+ xdaemon(1, 0); /* don't change curent directory */
# endif
return miniHttpd(server);
#else