}
/* }}} */
-/* {{{ proto int session_gc([int maxlifetime])
- Execute garbage collection returns number of deleted data */
-static PHP_FUNCTION(session_gc)
-{
- int nrdels = -1;
- long maxlifetime = PS(gc_maxlifetime);
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &maxlifetime) == FAILURE) {
- return;
- }
-
- /* Session must be active to have PS(mod) */
- if (PS(session_status) != php_session_active) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Trying to garbage collect without active session");
- RETURN_FALSE;
- }
-
- if (!PS(mod) || !PS(mod)->s_gc) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session save handler does not have gc()");
- RETURN_FALSE;
- }
- PS(mod)->s_gc(&PS(mod_data), maxlifetime, &nrdels TSRMLS_CC);
-
- if (nrdels < 0) {
- /* Files save handler return -1 if there is not a permission to remove.
- Save handlder should return negative nrdels when something wrong. */
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session gc failed. Check permission or session storage");
- RETURN_FALSE;
- }
- RETURN_LONG((long)nrdels);
-}
-/* }}} */
-
/* {{{ proto void session_register_shutdown(void)
Registers session_write_close() as a shutdown function */
static PHP_FUNCTION(session_register_shutdown)
ZEND_ARG_INFO(0, httponly)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO(arginfo_session_gc, 0)
- ZEND_ARG_INFO(0, maxlifetime)
-ZEND_END_ARG_INFO()
-
ZEND_BEGIN_ARG_INFO(arginfo_session_class_open, 0)
ZEND_ARG_INFO(0, save_path)
ZEND_ARG_INFO(0, session_name)
PHP_FE(session_abort, arginfo_session_void)
PHP_FE(session_reset, arginfo_session_void)
PHP_FE(session_status, arginfo_session_void)
- PHP_FE(session_gc, arginfo_session_gc)
PHP_FE(session_register_shutdown, arginfo_session_void)
PHP_FALIAS(session_commit, session_write_close, arginfo_session_void)
PHP_FE_END