]> granicus.if.org Git - php/commitdiff
Use synchronous php_request_shutdown in the standard case and
authorSascha Schumann <sas@php.net>
Mon, 23 Jul 2001 01:03:22 +0000 (01:03 +0000)
committerSascha Schumann <sas@php.net>
Mon, 23 Jul 2001 01:03:22 +0000 (01:03 +0000)
let the pool cleanup function only become effective, when an
error has occured.

This fixes the problem that the request_conn was already dead
when the request_shutdown was reached.

sapi/apache/mod_php4.c
sapi/apache/sapi_apache.c

index 53ddb92d876c541375e0d642063acd05c98bc8f3..a58df34143f12f4a0790e5d9b58bdb9aab04fa00 100644 (file)
@@ -312,9 +312,11 @@ static void php_apache_request_shutdown(void *dummy)
        SLS_FETCH();
        APLS_FETCH();
 
-       AP(in_request)=0;
        SG(server_context) = NULL; /* The server context (request) is invalid by the time run_cleanups() is called */
-       php_request_shutdown(dummy);
+       if (AP(in_request)) {
+               AP(in_request) = 0;
+               php_request_shutdown(dummy);
+       }
 }
 /* }}} */
 
index 5d5a7fbc96f2c2061ad3f06cfee50cdd554bd3f4..35d707d02406daf150444d3bc39525f4ca5a0b5a 100644 (file)
 #include "ext/standard/php_standard.h"
 #include "util_script.h"
 #include "php_version.h"
-/*#include "mod_php4.h"*/
+#include "mod_php4.h"
 
 /* {{{ apache_php_module_main
  */
 int apache_php_module_main(request_rec *r, int display_source_mode CLS_DC ELS_DC PLS_DC SLS_DC)
 {
        zend_file_handle file_handle;
+       APLS_FETCH();
 
        if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC) == FAILURE) {
                return FAILURE;
@@ -90,10 +91,12 @@ int apache_php_module_main(request_rec *r, int display_source_mode CLS_DC ELS_DC
                (void) php_execute_script(&file_handle CLS_CC ELS_CC PLS_CC);
        }
 
+       AP(in_request) = 0;
+       
        zend_try {
-               php_end_ob_buffers(1);
-               php_header();                   /* Make sure headers have been sent */
+               php_request_shutdown(NULL);
        } zend_end_try();
+       
        return (OK);
 }
 /* }}} */