zend_hash_destroy(&PS(vars));
}
-void _php_session_auto_start(void *data)
-{
- PSLS_FETCH();
-
- _php_session_start(PSLS_C);
-}
void _php_session_shutdown(void *data)
{
return SUCCESS;
}
- if (INI_INT("session.auto_start")) {
- php_register_post_request_startup(_php_session_auto_start, NULL);
- }
+ _php_session_start(PSLS_C);
php_register_pre_request_shutdown(_php_session_shutdown, NULL);
}
}
-static void php_execute_post_request_startup(PLS_D)
-{
- if (PG(post_request_startup_ok)) {
- zend_llist_apply(&PG(ll_post_request_startup), php_start_request_hook);
- zend_llist_destroy(&PG(ll_post_request_startup));
- PG(post_request_startup_ok) = 0;
- }
-}
void php_register_pre_request_shutdown(void (*func)(void *), void *userdata)
{
zend_llist_add_element(&PG(ll_pre_request_shutdown), &ptr);
}
-void php_register_post_request_startup(void (*func)(void *), void *userdata)
-{
- php_request_hook ptr;
- PLS_FETCH();
-
- if (!PG(post_request_startup_ok)) {
- zend_llist_init(&PG(ll_post_request_startup), sizeof(php_request_hook), NULL, 0);
- PG(post_request_startup_ok) = 1;
- }
-
- ptr.func = func;
- ptr.userdata = userdata;
-
- zend_llist_add_element(&PG(ll_post_request_startup), &ptr);
-}
int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
{
php_output_startup();
- PG(post_request_startup_ok) = PG(pre_request_shutdown_ok) = 0;
-
#if APACHE
/*
* For the Apache module version, this bit of code registers a cleanup
CLS_FETCH();
ELS_FETCH();
SLS_FETCH();
+ PLS_FETCH();
php_execute_pre_request_shutdown(PLS_C);
if (EG(main_op_array)) {
zend_hash_environment(PLS_C ELS_CC SLS_CC);
EG(active_op_array) = EG(main_op_array);
- php_execute_post_request_startup(PLS_C);
+ zend_activate_modules();
zend_execute(EG(main_op_array) ELS_CC);
}
}
/*from basic functions*/
extern PHPAPI int _php_error_log(int opt_err,char *message,char *opt,char *headers);
-PHPAPI void php_register_post_request_startup(void (*func)(void *), void *userdata);
PHPAPI void php_register_pre_request_shutdown(void (*func)(void *), void *userdata);
PHPAPI int cfg_get_long(char *varname, long *result);
unsigned char header_is_being_sent;
- zend_llist ll_post_request_startup;
zend_llist ll_pre_request_shutdown;
- zend_bool post_request_startup_ok;
zend_bool pre_request_shutdown_ok;
};