php-src/sapi/thttpd/thttpd_patch
Sascha Schumann 4b8823d427 Fix building thttpd SAPI module.
This works now with thttpd 2.19.

Thanks to Andrzej Borsuk <andrzej.borsuk@alfaelektro.com.pl> for
pointing me into the right direction.
2000-08-07 13:54:35 +00:00

113 lines
3.0 KiB
Plaintext

diff -ur thttpd-2.19/Makefile.in thttpd-2.19-t/Makefile.in
--- thttpd-2.19/Makefile.in Tue Jul 4 18:21:32 2000
+++ thttpd-2.19-t/Makefile.in Mon Aug 7 15:34:41 2000
@@ -46,13 +46,15 @@
# You shouldn't need to edit anything below here.
+include php_makefile
+
CC = @CC@
CCOPT = @V_CCOPT@
DEFS = @DEFS@
INCLS = -I.
CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
+LDFLAGS = @LDFLAGS@ $(PHP_LDFLAGS)
+LIBS = @LIBS@ $(PHP_LIBS)
NETLIBS = @V_NETLIBS@
INSTALL = @INSTALL@
@@ -62,7 +64,7 @@
@rm -f $@
$(CC) $(CFLAGS) -c $*.c
-SRC = thttpd.c libhttpd.c fdwatch.c mmc.c timers.c match.c tdate_parse.c syslog.c
+SRC = thttpd.c libhttpd.c fdwatch.c mmc.c timers.c match.c tdate_parse.c syslog.c php_thttpd.c
OBJ = $(SRC:.c=.o) @LIBOBJS@
@@ -151,6 +153,9 @@
tags:
ctags -wtd *.c *.h
+
+php_thttpd.o: php_thttpd.c
+ $(CC) $(PHP_CFLAGS) $(CFLAGS) -c php_thttpd.c
tar:
@name=`sed -n -e '/SERVER_SOFTWARE/!d' -e 's,.*thttpd/,thttpd-,' -e 's, .*,,p' version.h` ; \
Only in thttpd-2.19-t/cgi-src: Makefile
Only in thttpd-2.19-t/: config.log
Only in thttpd-2.19-t/extras: Makefile
diff -ur thttpd-2.19/libhttpd.c thttpd-2.19-t/libhttpd.c
--- thttpd-2.19/libhttpd.c Fri Jun 23 05:43:40 2000
+++ thttpd-2.19-t/libhttpd.c Mon Aug 7 15:27:25 2000
@@ -75,6 +75,8 @@
#include "match.h"
#include "tdate_parse.h"
+#include "php_thttpd.h"
+
#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#endif
@@ -224,6 +226,8 @@
free( (void*) hs->cwd );
if ( hs->cgi_pattern != (char*) 0 )
free( (void*) hs->cgi_pattern );
+ if ( hs->php_pattern != (char*) 0 )
+ free( (void*) hs->php_pattern );
if ( hs->charset != (char*) 0 )
free( (void*) hs->charset );
if ( hs->url_pattern != (char*) 0 )
@@ -231,6 +235,7 @@
if ( hs->local_pattern != (char*) 0 )
free( (void*) hs->local_pattern );
free( (void*) hs );
+ thttpd_php_shutdown();
}
@@ -291,6 +296,7 @@
}
hs->port = port;
+ hs->php_pattern = strdup("*.php");
if ( cgi_pattern == (char*) 0 )
hs->cgi_pattern = (char*) 0;
else
@@ -379,6 +385,8 @@
int listen_fd;
int on, flags;
+ thttpd_php_init();
+
/* Create socket. */
listen_fd = socket( saP->sa.sa_family, SOCK_STREAM, 0 );
if ( listen_fd < 0 )
@@ -3302,6 +3310,11 @@
( hc->sb.st_mode & S_IXOTH ) &&
match( hc->hs->cgi_pattern, hc->expnfilename ) )
return cgi( hc );
+
+ if ( hc->hs->php_pattern != (char*) 0 &&
+ match( hc->hs->php_pattern, hc->expnfilename)) {
+ return thttpd_php_request( hc );
+ }
/* 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/libhttpd.h thttpd-2.19-t/libhttpd.h
--- thttpd-2.19/libhttpd.h Tue Jun 13 20:48:56 2000
+++ thttpd-2.19-t/libhttpd.h Mon Aug 7 15:33:08 2000
@@ -69,6 +69,7 @@
char* server_hostname;
int port;
char* cgi_pattern;
+ char* php_pattern;
char* charset;
char* cwd;
int listen4_fd, listen6_fd;