]> granicus.if.org Git - php/commitdiff
sessions are now written via a _php_session_shutdown which is registered
authorThies C. Arntzen <thies@php.net>
Sat, 15 Jan 2000 13:09:32 +0000 (13:09 +0000)
committerThies C. Arntzen <thies@php.net>
Sat, 15 Jan 2000 13:09:32 +0000 (13:09 +0000)
via php_register_pre_request_shutdown().

ext/session/php_session.h
ext/session/session.c

index 5fa3bdd6a69f102dbbebf3537f3984127146d342..97df5fc7bc2b00f88ae51e33e7970bb182be57ae 100644 (file)
@@ -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
index 2d6664c48a48c36b5f333ba1f8770013ef7f3560..20ad12b3c397fe08709c71fa18eb9b9464cad2da 100644 (file)
@@ -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)