]> granicus.if.org Git - php/commitdiff
MFH
authorSascha Schumann <sas@php.net>
Mon, 12 May 2003 01:03:47 +0000 (01:03 +0000)
committerSascha Schumann <sas@php.net>
Mon, 12 May 2003 01:03:47 +0000 (01:03 +0000)
sapi/thttpd/config.m4
sapi/thttpd/thttpd.c

index 176c32760b24c1fc9cee8fa19e7095a7a27a1f9a..c73adc333b858adcf726fe0bc20f954ece84823c 100644 (file)
@@ -7,12 +7,18 @@ AC_ARG_WITH(thttpd,
   if test ! -d $withval; then
     AC_MSG_RESULT(thttpd directory does not exist ($withval))
   fi
-  if egrep thttpd.2.21b $withval/version.h >/dev/null; then
-    :
+
+  PHP_EXPAND_PATH($withval, THTTPD)
+  
+  if grep thttpd.2.21b $withval/version.h >/dev/null; then
+    patch="test -f $THTTPD/php_patched || \
+    (cd $THTTPD && patch -p 1 < $abs_srcdir/sapi/thttpd/thttpd_patch && touch php_patched)"
+
+  elif grep Premium $withval/version.h >/dev/null; then
+    patch=
   else
-    AC_MSG_ERROR([This version only supports thttpd-2.21b])
+    AC_MSG_ERROR([This version only supports thttpd-2.21b and Premium thttpd])
   fi
-  PHP_EXPAND_PATH($withval, THTTPD)
   PHP_TARGET_RDYNAMIC
   INSTALL_IT="\
     echo 'PHP_LIBS = -L. -lphp4 \$(PHP_LIBS) \$(EXTRA_LIBS)' > $THTTPD/php_makefile; \
@@ -21,8 +27,7 @@ AC_ARG_WITH(thttpd,
     rm -f $THTTPD/php_thttpd.c $THTTPD/php_thttpd.h $THTTPD/libphp4.a; \
     \$(LN_S) $abs_srcdir/sapi/thttpd/thttpd.c $THTTPD/php_thttpd.c; \
     \$(LN_S) $abs_srcdir/sapi/thttpd/php_thttpd.h $abs_builddir/$SAPI_STATIC $THTTPD/;\
-    test -f $THTTPD/php_patched || \
-    (cd $THTTPD && patch -p 1 < $abs_srcdir/sapi/thttpd/thttpd_patch && touch php_patched)"
+    $patch"
   PHP_THTTPD="yes, using $THTTPD"
   PHP_ADD_INCLUDE($THTTPD)
   PHP_SELECT_SAPI(thttpd, static)
index fd6edc6ae356b77942898c58b9e157f1324fbee4..96741daa9aa49a2b010fde72d1c693e628ddd27b 100644 (file)
@@ -49,6 +49,9 @@ typedef struct {
        int seen_cn;
 } php_thttpd_globals;
 
+#ifdef PREMIUM_THTTPD
+# define do_keep_alive persistent
+#endif
 
 #ifdef ZTS
 static int thttpd_globals_id;
@@ -632,7 +635,7 @@ static off_t thttpd_real_php_request(httpd_conn *hc, int show_source TSRMLS_DC)
        if (hc->method == METHOD_POST)
                hc->should_linger = 1;
        
-       if (hc->contentlength > 0 
+       if (hc->contentlength != -1
                        && SIZEOF_UNCONSUMED_BYTES() < hc->contentlength) {
                hc->read_body_into_mem = 1;
                return 0;
@@ -644,7 +647,7 @@ static off_t thttpd_real_php_request(httpd_conn *hc, int show_source TSRMLS_DC)
 
        /* disable kl, if no content-length was seen or Connection: was set */
        if (TG(seen_cl) == 0 || TG(seen_cn) == 1) {
-               TG(hc)->do_keep_alive = TG(hc)->keep_alive = 0;
+               TG(hc)->do_keep_alive = 0;
        }
        
        if (TG(sbuf).c != 0) {
@@ -695,7 +698,9 @@ int thttpd_get_fd(void)
 void thttpd_set_dont_close(void)
 {
        TSRMLS_FETCH();
+#ifndef PREMIUM_THTTPD
        TG(hc)->file_address = (char *) 1;
+#endif
 }