summaryrefslogtreecommitdiffhomepage
path: root/contrib/package/uhttpd/src/uhttpd-lua.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/package/uhttpd/src/uhttpd-lua.c')
-rw-r--r--contrib/package/uhttpd/src/uhttpd-lua.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/contrib/package/uhttpd/src/uhttpd-lua.c b/contrib/package/uhttpd/src/uhttpd-lua.c
index e88c42e444..1334aeeb41 100644
--- a/contrib/package/uhttpd/src/uhttpd-lua.c
+++ b/contrib/package/uhttpd/src/uhttpd-lua.c
@@ -211,8 +211,6 @@ lua_State * uh_lua_init(const char *handler)
void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
{
- pid_t pid;
-
int i, data_sent;
int content_length = 0;
int buflen = 0;
@@ -226,6 +224,8 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
char buf[UH_LIMIT_MSGHEAD];
+ pid_t child;
+
fd_set reader;
fd_set writer;
@@ -247,7 +247,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
}
- switch( (pid = fork()) )
+ switch( (child = fork()) )
{
case -1:
uh_http_sendhf(cl, 500, "Internal Server Error",
@@ -519,6 +519,9 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
close(rfd[0]);
close(wfd[1]);
+ if( !kill(child, 0) )
+ kill(child, SIGTERM);
+
break;
}
}