From:             [EMAIL PROTECTED]
Operating system: RH Linux 7.2
PHP version:      4.1.1
PHP Bug Type:     Output Control
Bug description:  Under Apache, register_shutdown_function() broke between 4.0.x to 
4.1.x

Under Apache 1.3.20 and PHP 4.1.1, register_shutdown_function() will run
the specified function, but it will not close the connection to the
client.

I have isolated the problem to sapi/apache/sapi_apache.c.  In
apache_php_module_main(), php_request_shutdown() is called.  When called
from this location, the connection is not shut down.  However, if you
comment this call out (along with the AP(in_request) = 0), it will be
called from php_apache_request_shutdown() instead.  When called from this
function, php_request_shutdown() operates as expected.

I do not understand enough about why the changes were made from 4.0.x to
4.1.x.  I also have not fully tested this change to see if there are
undesirable side effects.  I was hoping that someone more familiar with
PHP internals would look at it and have an "A-HA" moment.

Here is a patch (hope this survives the cut-and-paste):

--- php-4.1.1/sapi/apache/sapi_apache.c Sat Aug  4 21:42:45 2001
+++ ../php-4.1.1-changed/php-4.1.1/sapi/apache/sapi_apache.c    Thu Jan 24
12:08:40 2002
@@ -89,13 +89,13 @@
 
                (void) php_execute_script(&file_handle TSRMLS_CC);
        }
-
+/*
        AP(in_request) = 0;
        
        zend_try {
                php_request_shutdown(NULL);
        } zend_end_try();
-       
+*/     
        return (OK);
 }
 /* }}} */
-- 
Edit bug report at: http://bugs.php.net/?id=15209&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to