@@ -1952,12 +1952,23 @@ static int save_handler_check_session() {
1952
1952
return SUCCESS ;
1953
1953
}
1954
1954
1955
+ static inline void set_user_save_handler_ini (void ) {
1956
+ zend_string * ini_name , * ini_val ;
1957
+
1958
+ ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
1959
+ ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
1960
+ PS (set_handler ) = 1 ;
1961
+ zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
1962
+ PS (set_handler ) = 0 ;
1963
+ zend_string_release_ex (ini_val , 0 );
1964
+ zend_string_release_ex (ini_name , 0 );
1965
+ }
1966
+
1955
1967
/* {{{ Sets user-level functions */
1956
1968
PHP_FUNCTION (session_set_save_handler )
1957
1969
{
1958
1970
zval * args = NULL ;
1959
1971
int i , num_args , argc = ZEND_NUM_ARGS ();
1960
- zend_string * ini_name , * ini_val ;
1961
1972
1962
1973
if (argc > 0 && argc <= 2 ) {
1963
1974
zval * obj = NULL ;
@@ -2052,13 +2063,7 @@ PHP_FUNCTION(session_set_save_handler)
2052
2063
}
2053
2064
2054
2065
if (PS (session_status ) != php_session_active && (!PS (mod ) || PS (mod ) != & ps_mod_user )) {
2055
- ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
2056
- ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
2057
- PS (set_handler ) = 1 ;
2058
- zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
2059
- PS (set_handler ) = 0 ;
2060
- zend_string_release_ex (ini_val , 0 );
2061
- zend_string_release_ex (ini_name , 0 );
2066
+ set_user_save_handler_ini ();
2062
2067
}
2063
2068
2064
2069
RETURN_TRUE ;
@@ -2090,14 +2095,8 @@ PHP_FUNCTION(session_set_save_handler)
2090
2095
/* remove shutdown function */
2091
2096
remove_user_shutdown_function ("session_shutdown" , sizeof ("session_shutdown" ) - 1 );
2092
2097
2093
- if (PS (mod ) && PS (mod ) != & ps_mod_user ) {
2094
- ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
2095
- ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
2096
- PS (set_handler ) = 1 ;
2097
- zend_alter_ini_entry (ini_name , ini_val , PHP_INI_USER , PHP_INI_STAGE_RUNTIME );
2098
- PS (set_handler ) = 0 ;
2099
- zend_string_release_ex (ini_val , 0 );
2100
- zend_string_release_ex (ini_name , 0 );
2098
+ if (!PS (mod ) || PS (mod ) != & ps_mod_user ) {
2099
+ set_user_save_handler_ini ();
2101
2100
}
2102
2101
2103
2102
for (i = 0 ; i < argc ; i ++ ) {
0 commit comments