From: Thies C. Arntzen Date: Sat, 15 Jan 2000 13:09:32 +0000 (+0000) Subject: sessions are now written via a _php_session_shutdown which is registered X-Git-Tag: BEFORE_PRE_SHUTDOWN_REVERSE_PATCH~26 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64c6e1e90ecf11e1e86f7b621bf9e93a2487404e;p=php sessions are now written via a _php_session_shutdown which is registered via php_register_pre_request_shutdown(). --- diff --git a/ext/session/php_session.h b/ext/session/php_session.h index 5fa3bdd6a6..97df5fc7bc 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -156,6 +156,7 @@ void session_adapt_uris(const char *, uint, char **, uint *); #endif void _php_session_auto_start(void *data); +void _php_session_shutdown(void *data); #if HAVE_WDDX #define WDDX_SERIALIZER diff --git a/ext/session/session.c b/ext/session/session.c index 2d6664c48a..20ad12b3c3 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1173,6 +1173,17 @@ void _php_session_auto_start(void *data) _php_session_start(PSLS_C); } +void _php_session_shutdown(void *data) +{ + PSLS_FETCH(); + + if(PS(nr_open_sessions) > 0) { + _php_session_save_current_state(PSLS_C); + PS(nr_open_sessions)--; + } + php_rshutdown_session_globals(PSLS_C); +} + PHP_RINIT_FUNCTION(session) { PSLS_FETCH(); @@ -1189,11 +1200,16 @@ PHP_RINIT_FUNCTION(session) php_register_post_request_startup(_php_session_auto_start, NULL); } + php_register_pre_request_shutdown(_php_session_shutdown, NULL); + return SUCCESS; } PHP_RSHUTDOWN_FUNCTION(session) { + /* + this now done in _php_session_shutdown + PSLS_FETCH(); if(PS(nr_open_sessions) > 0) { @@ -1201,7 +1217,10 @@ PHP_RSHUTDOWN_FUNCTION(session) PS(nr_open_sessions)--; } php_rshutdown_session_globals(PSLS_C); - return SUCCESS; + + */ + + return SUCCESS; } PHP_MINIT_FUNCTION(session)