}
PS(mod_user_is_open) = 1;
+ PS(in_save_handler) = 1;
zend_try {
ret = PS(default_mod)->s_open(&PS(mod_data), save_path, session_name);
zend_bailout();
} zend_end_try();
+ PS(in_save_handler) = 0;
RETVAL_BOOL(SUCCESS == ret);
}
/* }}} */
zend_parse_parameters_none();
PS(mod_user_is_open) = 0;
+ PS(in_save_handler) = 1;
zend_try {
ret = PS(default_mod)->s_close(&PS(mod_data));
zend_bailout();
} zend_end_try();
+ PS(in_save_handler) = 0;
RETVAL_BOOL(SUCCESS == ret);
}
/* }}} */
PHP_METHOD(SessionHandler, write)
{
zend_string *key, *val;
+ zend_bool ret;
PS_SANITY_CHECK_IS_OPEN;
return;
}
- RETURN_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime)));
+ PS(in_save_handler) = 1;
+ ret = PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime));
+ PS(in_save_handler) = 0;
+
+ RETURN_BOOL(SUCCESS == ret);
}
/* }}} */
PHP_METHOD(SessionHandler, destroy)
{
zend_string *key;
+ zend_bool ret;
PS_SANITY_CHECK_IS_OPEN;
return;
}
- RETURN_BOOL(SUCCESS == PS(default_mod)->s_destroy(&PS(mod_data), key));
+ PS(in_save_handler) = 1;
+ ret = PS(default_mod)->s_destroy(&PS(mod_data), key);
+ PS(in_save_handler) = 0;
+
+ RETURN_BOOL(SUCCESS == ret);
}
/* }}} */
return;
}
+ PS(in_save_handler) = 1;
if (PS(default_mod)->s_gc(&PS(mod_data), maxlifetime, &nrdels) == FAILURE) {
+ PS(in_save_handler) = 0;
RETURN_FALSE;
}
+ PS(in_save_handler) = 0;
RETURN_LONG(nrdels);
}
/* }}} */
return;
}
+ PS(in_save_handler) = 1;
id = PS(default_mod)->s_create_sid(&PS(mod_data));
+ PS(in_save_handler) = 0;
RETURN_STR(id);
}
PHP_METHOD(SessionHandler, updateTimestamp)
{
zend_string *key, *val;
+ zend_bool ret;
PS_SANITY_CHECK_IS_OPEN;
return;
}
+ PS(in_save_handler) = 1;
+ ret = PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime));
+ PS(in_save_handler) = 0;
+
/* Legacy save handler may not support update_timestamp API. Just write. */
- RETVAL_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime)));
+ RETVAL_BOOL(SUCCESS == ret);
}
/* }}} */