Update patch and add persistent connection handling

This commit is contained in:
Sascha Schumann 2000-11-13 13:33:12 +00:00
parent eea750ebc8
commit 39f8c9807e

View File

@ -1,6 +1,6 @@
diff -ur thttpd-2.19-t/Makefile.in thttpd-2.19/Makefile.in
--- thttpd-2.19-t/Makefile.in Tue Jul 4 18:21:32 2000
+++ thttpd-2.19/Makefile.in Mon Aug 21 04:58:29 2000
diff -Nur thttpd-2.20b/Makefile.in thttpd-2.20b-php/Makefile.in
--- thttpd-2.20b/Makefile.in Tue Jul 4 18:21:32 2000
+++ thttpd-2.20b-php/Makefile.in Mon Nov 13 14:25:48 2000
@@ -46,13 +46,15 @@
# You shouldn't need to edit anything below here.
@ -38,9 +38,9 @@ diff -ur thttpd-2.19-t/Makefile.in thttpd-2.19/Makefile.in
tar:
@name=`sed -n -e '/SERVER_SOFTWARE/!d' -e 's,.*thttpd/,thttpd-,' -e 's, .*,,p' version.h` ; \
diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
--- thttpd-2.19-t/libhttpd.c Fri Jun 23 05:43:40 2000
+++ thttpd-2.19/libhttpd.c Mon Aug 21 04:59:13 2000
diff -Nur thttpd-2.20b/libhttpd.c thttpd-2.20b-php/libhttpd.c
--- thttpd-2.20b/libhttpd.c Wed Sep 27 20:13:24 2000
+++ thttpd-2.20b-php/libhttpd.c Mon Nov 13 14:25:57 2000
@@ -75,6 +75,8 @@
#include "match.h"
#include "tdate_parse.h"
@ -50,7 +50,7 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#endif
@@ -224,6 +226,8 @@
@@ -225,6 +227,8 @@
free( (void*) hs->cwd );
if ( hs->cgi_pattern != (char*) 0 )
free( (void*) hs->cgi_pattern );
@ -59,7 +59,7 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
if ( hs->charset != (char*) 0 )
free( (void*) hs->charset );
if ( hs->url_pattern != (char*) 0 )
@@ -231,6 +235,7 @@
@@ -232,6 +236,7 @@
if ( hs->local_pattern != (char*) 0 )
free( (void*) hs->local_pattern );
free( (void*) hs );
@ -67,7 +67,7 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
}
@@ -291,6 +296,7 @@
@@ -292,6 +297,7 @@
}
hs->port = port;
@ -75,7 +75,7 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
if ( cgi_pattern == (char*) 0 )
hs->cgi_pattern = (char*) 0;
else
@@ -362,6 +368,8 @@
@@ -363,6 +369,8 @@
return (httpd_server*) 0;
}
@ -84,7 +84,18 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
/* Done initializing. */
if ( hs->binding_hostname == (char*) 0 )
syslog( LOG_INFO, "%s starting on port %d", SERVER_SOFTWARE, hs->port );
@@ -3302,6 +3310,11 @@
@@ -2167,7 +2175,9 @@
void
httpd_close_conn( httpd_conn* hc, struct timeval* nowP )
{
- if ( hc->file_address != (char*) 0 )
+ if (hc->file_address == (char *) 1) {
+ thttpd_closed_conn(hc->conn_fd);
+ } else if ( hc->file_address != (char*) 0 )
{
mmc_unmap( hc->file_address, nowP, &(hc->sb) );
hc->file_address = (char*) 0;
@@ -3336,6 +3346,11 @@
( hc->sb.st_mode & S_IXOTH ) &&
match( hc->hs->cgi_pattern, hc->expnfilename ) )
return cgi( hc );
@ -96,9 +107,9 @@ diff -ur thttpd-2.19-t/libhttpd.c thttpd-2.19/libhttpd.c
/* It's not CGI. If it's executable or there's pathinfo, someone's
** trying to either serve or run a non-CGI file as CGI. Either case
diff -ur thttpd-2.19-t/libhttpd.h thttpd-2.19/libhttpd.h
--- thttpd-2.19-t/libhttpd.h Tue Jun 13 20:48:56 2000
+++ thttpd-2.19/libhttpd.h Mon Aug 21 04:58:29 2000
diff -Nur thttpd-2.20b/libhttpd.h thttpd-2.20b-php/libhttpd.h
--- thttpd-2.20b/libhttpd.h Tue Jun 13 20:48:56 2000
+++ thttpd-2.20b-php/libhttpd.h Mon Nov 13 14:25:48 2000
@@ -69,6 +69,7 @@
char* server_hostname;
int port;
@ -107,3 +118,17 @@ diff -ur thttpd-2.19-t/libhttpd.h thttpd-2.19/libhttpd.h
char* charset;
char* cwd;
int listen4_fd, listen6_fd;
diff -Nur thttpd-2.20b/thttpd.c thttpd-2.20b-php/thttpd.c
--- thttpd-2.20b/thttpd.c Wed Sep 27 21:31:48 2000
+++ thttpd-2.20b-php/thttpd.c Mon Nov 13 14:25:57 2000
@@ -1333,6 +1333,10 @@
clear_connection( c, tvP );
return;
}
+ if (hc->file_address == (char *) 1) {
+ tmr_cancel( c->idle_read_timer );
+ return;
+ }
if ( c->bytes_sent >= c->bytes_to_send )
{
/* There's nothing to send. */