mirror of
https://github.com/emikulic/darkhttpd.git
synced 2023-08-10 21:13:08 +03:00
Add --default-mimetype flag.
This commit is contained in:
parent
e9aeaba7fe
commit
c4c0034242
11
darkhttpd.c
11
darkhttpd.c
@ -314,7 +314,8 @@ static const char *default_extension_map[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char default_mimetype[] = "application/octet-stream";
|
static const char octet_stream[] = "application/octet-stream";
|
||||||
|
static const char *default_mimetype = octet_stream;
|
||||||
|
|
||||||
/* Prototypes. */
|
/* Prototypes. */
|
||||||
static void poll_recv_request(struct connection *conn);
|
static void poll_recv_request(struct connection *conn);
|
||||||
@ -891,6 +892,9 @@ static void usage(const char *argv0) {
|
|||||||
"\t\tDo not serve listing if directory is requested.\n\n");
|
"\t\tDo not serve listing if directory is requested.\n\n");
|
||||||
printf("\t--mimetypes filename (optional)\n"
|
printf("\t--mimetypes filename (optional)\n"
|
||||||
"\t\tParses specified file for extension-MIME associations.\n\n");
|
"\t\tParses specified file for extension-MIME associations.\n\n");
|
||||||
|
printf("\t--default-mimetype string (optional, default: %s)\n"
|
||||||
|
"\t\tFiles with unknown extensions are served as this mimetype.\n\n",
|
||||||
|
octet_stream);
|
||||||
printf("\t--uid uid/uname, --gid gid/gname (default: don't privdrop)\n"
|
printf("\t--uid uid/uname, --gid gid/gname (default: don't privdrop)\n"
|
||||||
"\t\tDrops privileges to given uid:gid after initialization.\n\n");
|
"\t\tDrops privileges to given uid:gid after initialization.\n\n");
|
||||||
printf("\t--pidfile filename (default: no pidfile)\n"
|
printf("\t--pidfile filename (default: no pidfile)\n"
|
||||||
@ -1008,6 +1012,11 @@ static void parse_commandline(const int argc, char *argv[]) {
|
|||||||
errx(1, "missing filename after --mimetypes");
|
errx(1, "missing filename after --mimetypes");
|
||||||
parse_extension_map_file(argv[i]);
|
parse_extension_map_file(argv[i]);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(argv[i], "--default-mimetype") == 0) {
|
||||||
|
if (++i >= argc)
|
||||||
|
errx(1, "missing string after --default-mimetype");
|
||||||
|
default_mimetype = argv[i];
|
||||||
|
}
|
||||||
else if (strcmp(argv[i], "--uid") == 0) {
|
else if (strcmp(argv[i], "--uid") == 0) {
|
||||||
struct passwd *p;
|
struct passwd *p;
|
||||||
if (++i >= argc)
|
if (++i >= argc)
|
||||||
|
@ -77,7 +77,9 @@ echo "test/this-gets-replaced ap2" >> $DIR/mimemap
|
|||||||
echo "# this is a comment" >> $DIR/mimemap
|
echo "# this is a comment" >> $DIR/mimemap
|
||||||
printf "test/type3\\tapp3\r\n" >> $DIR/mimemap
|
printf "test/type3\\tapp3\r\n" >> $DIR/mimemap
|
||||||
echo "test/type2 ap2" >> $DIR/mimemap
|
echo "test/type2 ap2" >> $DIR/mimemap
|
||||||
./a.out $DIR --port $PORT --mimetypes $DIR/mimemap >/dev/null &
|
./a.out $DIR --port $PORT \
|
||||||
|
--mimetypes $DIR/mimemap \
|
||||||
|
--default-mimetype test/default >/dev/null &
|
||||||
PID=$!
|
PID=$!
|
||||||
kill -0 $PID || exit 1
|
kill -0 $PID || exit 1
|
||||||
python test_mimemap.py
|
python test_mimemap.py
|
||||||
|
@ -11,7 +11,7 @@ class TestMimemap(TestHelper):
|
|||||||
self.files = [ ("test-file.a1", "test/type1"),
|
self.files = [ ("test-file.a1", "test/type1"),
|
||||||
("test-file.ap2", "test/type2"),
|
("test-file.ap2", "test/type2"),
|
||||||
("test-file.app3", "test/type3"),
|
("test-file.app3", "test/type3"),
|
||||||
("test-file.appp4", "application/octet-stream") ]
|
("test-file.appp4", "test/default") ]
|
||||||
for fn, _ in self.files:
|
for fn, _ in self.files:
|
||||||
open(WWWROOT + "/" + fn, "w").write(self.data)
|
open(WWWROOT + "/" + fn, "w").write(self.data)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user