diff options
author | Arno Töll <arno@debian.org> | 2012-11-21 23:03:52 +0100 |
---|---|---|
committer | Arno Töll <arno@debian.org> | 2012-11-21 23:03:52 +0100 |
commit | 36c2c9520cdf4e725d0597eaa28c350087f1d3c0 (patch) | |
tree | 9337d6a9fac555f4391cf529a6a3c805db0b6d3a /src/mod_trigger_b4_dl.c | |
parent | f1532bfdd56dc641ae366f6ecd4c490c11117aac (diff) | |
download | lighttpd-36c2c9520cdf4e725d0597eaa28c350087f1d3c0.tar.gz |
Imported Upstream version 1.4.22upstream/1.4.22
Diffstat (limited to 'src/mod_trigger_b4_dl.c')
-rw-r--r-- | src/mod_trigger_b4_dl.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mod_trigger_b4_dl.c b/src/mod_trigger_b4_dl.c index bc49b1e..11fc2ae 100644 --- a/src/mod_trigger_b4_dl.c +++ b/src/mod_trigger_b4_dl.c @@ -1,5 +1,6 @@ #include <ctype.h> #include <stdlib.h> +#include <fcntl.h> #include <string.h> #include "base.h" @@ -180,6 +181,9 @@ SETDEFAULTS_FUNC(mod_trigger_b4_dl_set_defaults) { "gdbm-open failed"); return HANDLER_ERROR; } +#ifdef FD_CLOEXEC + fcntl(gdbm_fdesc(s->db), F_SETFD, FD_CLOEXEC); +#endif } #endif #if defined(HAVE_PCRE_H) @@ -316,6 +320,8 @@ URIHANDLER_FUNC(mod_trigger_b4_dl_uri_handler) { # define N 10 int ovec[N * 3]; + if (con->mode != DIRECT) return HANDLER_GO_ON; + if (con->uri.path->used == 0) return HANDLER_GO_ON; mod_trigger_b4_dl_patch_connection(srv, con, p); @@ -425,8 +431,8 @@ URIHANDLER_FUNC(mod_trigger_b4_dl_uri_handler) { /* not found, redirect */ response_header_insert(srv, con, CONST_STR_LEN("Location"), CONST_BUF_LEN(p->conf.deny_url)); - con->http_status = 307; + con->file_finished = 1; return HANDLER_FINISHED; } @@ -440,6 +446,7 @@ URIHANDLER_FUNC(mod_trigger_b4_dl_uri_handler) { response_header_insert(srv, con, CONST_STR_LEN("Location"), CONST_BUF_LEN(p->conf.deny_url)); con->http_status = 307; + con->file_finished = 1; if (p->conf.db) { if (0 != gdbm_delete(p->conf.db, key)) { @@ -490,6 +497,7 @@ URIHANDLER_FUNC(mod_trigger_b4_dl_uri_handler) { response_header_insert(srv, con, CONST_STR_LEN("Location"), CONST_BUF_LEN(p->conf.deny_url)); con->http_status = 307; + con->file_finished = 1; return HANDLER_FINISHED; } |