@@ -1923,13 +1923,24 @@ static PHP_FUNCTION(session_module_name)
1923
1923
}
1924
1924
/* }}} */
1925
1925
1926
+ static inline void set_user_save_handler_ini (void ) {
1927
+ zend_string * ini_name , * ini_val ;
1928
+
1929
+ ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
1930
+ ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
1931
+ PS (set_handler ) = 1 ;
1932
+ zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
1933
+ PS (set_handler ) = 0 ;
1934
+ zend_string_release_ex (ini_val , 0 );
1935
+ zend_string_release_ex (ini_name , 0 );
1936
+ }
1937
+
1926
1938
/* {{{ proto bool session_set_save_handler(string open, string close, string read, string write, string destroy, string gc, string create_sid)
1927
1939
Sets user-level functions */
1928
1940
static PHP_FUNCTION (session_set_save_handler )
1929
1941
{
1930
1942
zval * args = NULL ;
1931
1943
int i , num_args , argc = ZEND_NUM_ARGS ();
1932
- zend_string * ini_name , * ini_val ;
1933
1944
1934
1945
if (PS (session_status ) == php_session_active ) {
1935
1946
php_error_docref (NULL , E_WARNING , "Cannot change save handler when session is active" );
@@ -2032,13 +2043,7 @@ static PHP_FUNCTION(session_set_save_handler)
2032
2043
}
2033
2044
2034
2045
if (PS (session_status ) != php_session_active && (!PS (mod ) || PS (mod ) != & ps_mod_user )) {
2035
- ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
2036
- ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
2037
- PS (set_handler ) = 1 ;
2038
- zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
2039
- PS (set_handler ) = 0 ;
2040
- zend_string_release_ex (ini_val , 0 );
2041
- zend_string_release_ex (ini_name , 0 );
2046
+ set_user_save_handler_ini ();
2042
2047
}
2043
2048
2044
2049
RETURN_TRUE ;
@@ -2066,14 +2071,8 @@ static PHP_FUNCTION(session_set_save_handler)
2066
2071
}
2067
2072
}
2068
2073
2069
- if (PS (mod ) && PS (mod ) != & ps_mod_user ) {
2070
- ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
2071
- ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
2072
- PS (set_handler ) = 1 ;
2073
- zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
2074
- PS (set_handler ) = 0 ;
2075
- zend_string_release_ex (ini_val , 0 );
2076
- zend_string_release_ex (ini_name , 0 );
2074
+ if (!PS (mod ) || PS (mod ) != & ps_mod_user ) {
2075
+ set_user_save_handler_ini ();
2077
2076
}
2078
2077
2079
2078
for (i = 0 ; i < argc ; i ++ ) {
0 commit comments