mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
(PHP session_destroy) return the error condition from storage handler's
session_destroy method. Submitted by: juhl@eisenstein.dk
This commit is contained in:
parent
94d7e1fa5b
commit
277b0e15b8
@ -275,7 +275,9 @@ PS_DESTROY_FUNC(files)
|
|||||||
if (!_ps_files_path_create(buf, sizeof(buf), data, key))
|
if (!_ps_files_path_create(buf, sizeof(buf), data, key))
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
V_UNLINK(buf);
|
if (V_UNLINK(buf) == -1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ PHP_MINFO_FUNCTION(session);
|
|||||||
|
|
||||||
static void php_rinit_session_globals(PSLS_D);
|
static void php_rinit_session_globals(PSLS_D);
|
||||||
static void php_rshutdown_session_globals(PSLS_D);
|
static void php_rshutdown_session_globals(PSLS_D);
|
||||||
static void _php_session_destroy(PSLS_D);
|
static zend_bool _php_session_destroy(PSLS_D);
|
||||||
|
|
||||||
zend_module_entry session_module_entry = {
|
zend_module_entry session_module_entry = {
|
||||||
"session",
|
"session",
|
||||||
@ -874,18 +874,24 @@ static void _php_session_start(PSLS_D)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _php_session_destroy(PSLS_D)
|
static zend_bool _php_session_destroy(PSLS_D)
|
||||||
{
|
{
|
||||||
|
zend_bool retval = SUCCESS;
|
||||||
|
|
||||||
if (PS(nr_open_sessions) == 0) {
|
if (PS(nr_open_sessions) == 0) {
|
||||||
php_error(E_WARNING, "Trying to destroy uninitialized session");
|
php_error(E_WARNING, "Trying to destroy uninitialized session");
|
||||||
return;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PS(mod)->destroy(&PS(mod_data), PS(id)) == FAILURE) {
|
if (PS(mod)->destroy(&PS(mod_data), PS(id)) == FAILURE) {
|
||||||
|
retval = FAILURE;
|
||||||
php_error(E_WARNING, "Destroying the session object failed");
|
php_error(E_WARNING, "Destroying the session object failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
php_rshutdown_session_globals(PSLS_C);
|
php_rshutdown_session_globals(PSLS_C);
|
||||||
php_rinit_session_globals(PSLS_C);
|
php_rinit_session_globals(PSLS_C);
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1224,13 +1230,17 @@ PHP_FUNCTION(session_start)
|
|||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
/* {{{ proto void session_destroy(void)
|
/* {{{ proto bool session_destroy(void)
|
||||||
Destroy the current session and all data associated with it */
|
Destroy the current session and all data associated with it */
|
||||||
PHP_FUNCTION(session_destroy)
|
PHP_FUNCTION(session_destroy)
|
||||||
{
|
{
|
||||||
PSLS_FETCH();
|
PSLS_FETCH();
|
||||||
|
|
||||||
_php_session_destroy(PSLS_C);
|
if (_php_session_destroy(PSLS_C) == SUCCESS) {
|
||||||
|
RETURN_TRUE;
|
||||||
|
} else {
|
||||||
|
RETURN_FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user