mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00
Restore session_adapt_url()
This commit is contained in:
parent
cb386234ea
commit
f7e7b42d4b
2 changed files with 19 additions and 8 deletions
|
@ -89,7 +89,8 @@ typedef struct _php_ps_globals {
|
||||||
zval *http_session_vars;
|
zval *http_session_vars;
|
||||||
zend_bool auto_start;
|
zend_bool auto_start;
|
||||||
zend_bool use_cookies;
|
zend_bool use_cookies;
|
||||||
zend_bool use_trans_sid;
|
zend_bool use_trans_sid; /* contains the INI value of whether to use trans-sid */
|
||||||
|
zend_bool apply_trans_sid; /* whether or not to enable trans-sid for the current request */
|
||||||
zend_bool output_handler_registered;
|
zend_bool output_handler_registered;
|
||||||
} php_ps_globals;
|
} php_ps_globals;
|
||||||
|
|
||||||
|
@ -144,7 +145,7 @@ typedef struct ps_serializer_struct {
|
||||||
#define PS_SERIALIZER_ENTRY(x) \
|
#define PS_SERIALIZER_ENTRY(x) \
|
||||||
{ #x, PS_SERIALIZER_ENCODE_NAME(x), PS_SERIALIZER_DECODE_NAME(x) }
|
{ #x, PS_SERIALIZER_ENCODE_NAME(x), PS_SERIALIZER_DECODE_NAME(x) }
|
||||||
|
|
||||||
void session_adapt_url(const char *, size_t, char **, size_t * TSRMLS_DC);
|
PHPAPI void session_adapt_url(const char *, size_t, char **, size_t * TSRMLS_DC);
|
||||||
|
|
||||||
void php_set_session_var(char *name, size_t namelen, zval *state_val,HashTable *var_hash TSRMLS_DC);
|
void php_set_session_var(char *name, size_t namelen, zval *state_val,HashTable *var_hash TSRMLS_DC);
|
||||||
int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC);
|
int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC);
|
||||||
|
|
|
@ -809,7 +809,8 @@ static void php_session_start(TSRMLS_D)
|
||||||
int module_number = PS(module_number);
|
int module_number = PS(module_number);
|
||||||
int nrand;
|
int nrand;
|
||||||
int lensess;
|
int lensess;
|
||||||
int register_trans_sid_handler = PS(use_trans_sid);
|
|
||||||
|
PS(apply_trans_sid) = PS(use_trans_sid);
|
||||||
|
|
||||||
if (PS(session_status) != php_session_none)
|
if (PS(session_status) != php_session_none)
|
||||||
return;
|
return;
|
||||||
|
@ -829,7 +830,7 @@ static void php_session_start(TSRMLS_D)
|
||||||
zend_hash_find(Z_ARRVAL_PP(data), PS(session_name),
|
zend_hash_find(Z_ARRVAL_PP(data), PS(session_name),
|
||||||
lensess + 1, (void **) &ppid) == SUCCESS) {
|
lensess + 1, (void **) &ppid) == SUCCESS) {
|
||||||
PPID2SID;
|
PPID2SID;
|
||||||
register_trans_sid_handler = 0;
|
PS(apply_trans_sid) = 0;
|
||||||
send_cookie = 0;
|
send_cookie = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -884,14 +885,14 @@ static void php_session_start(TSRMLS_D)
|
||||||
efree(PS(id));
|
efree(PS(id));
|
||||||
PS(id) = NULL;
|
PS(id) = NULL;
|
||||||
send_cookie = 1;
|
send_cookie = 1;
|
||||||
register_trans_sid_handler = 1;
|
PS(apply_trans_sid) = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PS(id))
|
if (!PS(id))
|
||||||
PS(id) = _php_create_id(NULL TSRMLS_CC);
|
PS(id) = _php_create_id(NULL TSRMLS_CC);
|
||||||
|
|
||||||
if (!PS(use_cookies) && send_cookie) {
|
if (!PS(use_cookies) && send_cookie) {
|
||||||
register_trans_sid_handler = 1;
|
PS(apply_trans_sid) = 1;
|
||||||
send_cookie = 0;
|
send_cookie = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -900,7 +901,7 @@ static void php_session_start(TSRMLS_D)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (register_trans_sid_handler) {
|
if (PS(apply_trans_sid)) {
|
||||||
smart_str var = {0};
|
smart_str var = {0};
|
||||||
|
|
||||||
smart_str_appends(&var, PS(session_name));
|
smart_str_appends(&var, PS(session_name));
|
||||||
|
@ -913,7 +914,7 @@ static void php_session_start(TSRMLS_D)
|
||||||
}
|
}
|
||||||
|
|
||||||
PS(session_status) = php_session_active;
|
PS(session_status) = php_session_active;
|
||||||
if (register_trans_sid_handler) {
|
if (PS(apply_trans_sid)) {
|
||||||
php_session_start_output_handler(4096 TSRMLS_CC);
|
php_session_start_output_handler(4096 TSRMLS_CC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1338,6 +1339,15 @@ PHP_FUNCTION(session_unset)
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
||||||
|
PHPAPI void session_adapt_url(const char *url, size_t urllen, char **new, size_t *newlen TSRMLS_DC)
|
||||||
|
{
|
||||||
|
if (PS(apply_trans_sid) && (PS(session_status) == php_session_active)) {
|
||||||
|
*new = url_adapt_single_url(url, urllen, PS(session_name), PS(id), newlen TSRMLS_CC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void php_rinit_session_globals(TSRMLS_D)
|
static void php_rinit_session_globals(TSRMLS_D)
|
||||||
{
|
{
|
||||||
zend_hash_init(&PS(vars), 0, NULL, NULL, 0);
|
zend_hash_init(&PS(vars), 0, NULL, NULL, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue