mirror of
https://github.com/emikulic/darkhttpd.git
synced 2023-08-10 21:13:08 +03:00
. Added to TODO list
. Default value for sockin is -1 . Added index_name default, parsing of --index, usage of --index . Dereference char **method when passing to strntoupper()
This commit is contained in:
parent
98c9fd318e
commit
0615eb6a88
@ -14,6 +14,8 @@
|
|||||||
* . Log to file.
|
* . Log to file.
|
||||||
* . Partial content.
|
* . Partial content.
|
||||||
* . Keep-alive connections.
|
* . Keep-alive connections.
|
||||||
|
* . Chroot, set{uid|gid}.
|
||||||
|
* . Port to Win32.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -82,8 +84,9 @@ struct connection
|
|||||||
static in_addr_t bindaddr = INADDR_ANY;
|
static in_addr_t bindaddr = INADDR_ANY;
|
||||||
static u_int16_t bindport = 80;
|
static u_int16_t bindport = 80;
|
||||||
static int max_connections = -1; /* kern.ipc.somaxconn */
|
static int max_connections = -1; /* kern.ipc.somaxconn */
|
||||||
|
static char *index_name = "index.html";
|
||||||
|
|
||||||
static int sockin; /* socket to accept connections from */
|
static int sockin = -1; /* socket to accept connections from */
|
||||||
static char *wwwroot = NULL; /* a path name */
|
static char *wwwroot = NULL; /* a path name */
|
||||||
static char *logfile_name = NULL; /* NULL = no logging */
|
static char *logfile_name = NULL; /* NULL = no logging */
|
||||||
static int want_chroot = 0;
|
static int want_chroot = 0;
|
||||||
@ -150,8 +153,11 @@ static void usage(void)
|
|||||||
"\t--chroot (default: don't chroot)\n"
|
"\t--chroot (default: don't chroot)\n"
|
||||||
"\t\tLocks server into wwwroot directory for added security.\n"
|
"\t\tLocks server into wwwroot directory for added security.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"\t--index filename (default: %s)\n" /* index_name */
|
||||||
|
"\t\tDefault file to serve when a directory is requested.\n"
|
||||||
|
"\n"
|
||||||
/* "\t--uid blah, --gid blah\n" FIXME */
|
/* "\t--uid blah, --gid blah\n" FIXME */
|
||||||
, bindport);
|
, bindport, index_name);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,6 +202,11 @@ static void parse_commandline(const int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
want_chroot = 1;
|
want_chroot = 1;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(argv[i], "--index") == 0)
|
||||||
|
{
|
||||||
|
if (++i >= argc) errx(1, "missing filename after --index");
|
||||||
|
index_name = argv[i];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
errx(1, "unknown argument `%s'", argv[i]);
|
errx(1, "unknown argument `%s'", argv[i]);
|
||||||
}
|
}
|
||||||
@ -384,7 +395,7 @@ static void parse_request(const char *req, const int length,
|
|||||||
*method = (char*)xmalloc(bound1+1);
|
*method = (char*)xmalloc(bound1+1);
|
||||||
memcpy(*method, req, bound1);
|
memcpy(*method, req, bound1);
|
||||||
(*method)[bound1] = 0;
|
(*method)[bound1] = 0;
|
||||||
strntoupper(method, bound1);
|
strntoupper(*method, bound1);
|
||||||
|
|
||||||
for (bound2=bound1+1; bound2<length && req[bound2] != ' ' &&
|
for (bound2=bound1+1; bound2<length && req[bound2] != ' ' &&
|
||||||
req[bound2] != '\r'; bound2++);
|
req[bound2] != '\r'; bound2++);
|
||||||
|
Loading…
Reference in New Issue
Block a user