summaryrefslogtreecommitdiff
path: root/src/mod_trigger_b4_dl.c
diff options
context:
space:
mode:
authorArno Töll <arno@debian.org>2012-11-21 23:03:52 +0100
committerArno Töll <arno@debian.org>2012-11-21 23:03:52 +0100
commit36c2c9520cdf4e725d0597eaa28c350087f1d3c0 (patch)
tree9337d6a9fac555f4391cf529a6a3c805db0b6d3a /src/mod_trigger_b4_dl.c
parentf1532bfdd56dc641ae366f6ecd4c490c11117aac (diff)
downloadlighttpd-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.c10
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;
}