From: Sascha Schumann Date: Mon, 12 May 2003 01:03:47 +0000 (+0000) Subject: MFH X-Git-Tag: php-4.3.2RC3~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6db735215a46e7b789f146b4f16a238246e8f359;p=php MFH --- diff --git a/sapi/thttpd/config.m4 b/sapi/thttpd/config.m4 index 176c32760b..c73adc333b 100644 --- a/sapi/thttpd/config.m4 +++ b/sapi/thttpd/config.m4 @@ -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) diff --git a/sapi/thttpd/thttpd.c b/sapi/thttpd/thttpd.c index fd6edc6ae3..96741daa9a 100644 --- a/sapi/thttpd/thttpd.c +++ b/sapi/thttpd/thttpd.c @@ -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 }