diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-15 19:46:35 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-15 19:46:35 +0000 |
commit | 4f3f63bb6dce2dbe9be307e85de8aa5b24b841d7 (patch) | |
tree | 3246674ece88f59cd222efa335eb60e80385192e /uhttpd-file.c | |
parent | ff804c484a8459921497e70488a6347ebba481bd (diff) | |
download | uhttpd-4f3f63bb6dce2dbe9be307e85de8aa5b24b841d7.tar.gz |
[package] uhttpd:
- make network timeout configurable, increase default to 30 seconds (#7067)
- follow symlinks in docroot and add option to disable that
- fix mimetype detection for files with combined extensions (.tar.gz, ...)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/package/uhttpd/src@20883 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'uhttpd-file.c')
-rw-r--r-- | uhttpd-file.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/uhttpd-file.c b/uhttpd-file.c index 2a06f85..81f66a3 100644 --- a/uhttpd-file.c +++ b/uhttpd-file.c @@ -29,23 +29,21 @@ static const char * uh_file_mime_lookup(const char *path) { struct mimetype *m = &uh_mime_types[0]; - char *p, *pd, *ps; + char *e; - ps = strrchr(path, '/'); - pd = strrchr(path, '.'); - - /* use either slash or dot as separator, whatever comes last */ - p = (ps && pd && (ps > pd)) ? ps : pd; - - if( (p != NULL) && (*(++p) != 0) ) + while( m->extn ) { - while( m->extn ) + e = &path[strlen(path)-1]; + + while( e >= path ) { - if( ! strcasecmp(p, m->extn) ) + if( (*e == '.') && !strcasecmp(&e[1], m->extn) ) return m->mime; - m++; + e--; } + + m++; } return "application/octet-stream"; |