From: Thies C. Arntzen Date: Sun, 5 May 2002 16:39:49 +0000 (+0000) Subject: re-add accidentily nuked session_adapt_url() X-Git-Tag: php-4.3.0dev-ZendEngine2-Preview1~222 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=23251ebd1a5ec4f22b79d6153f307b455b6d3ae8;p=php re-add accidentily nuked session_adapt_url() --- diff --git a/ext/session/php_session.h b/ext/session/php_session.h index 8bd90773b5..c458b11b56 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -171,6 +171,8 @@ typedef struct ps_serializer_struct { #define PS_SERIALIZER_ENTRY(x) \ { #x, PS_SERIALIZER_ENCODE_NAME(x), PS_SERIALIZER_DECODE_NAME(x) } +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, php_unserialize_data_t *var_hash TSRMLS_DC); int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC); diff --git a/ext/session/session.c b/ext/session/session.c index a028851c34..b19d35ec34 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1375,13 +1375,16 @@ 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 = php_url_scanner_adapt_single_url(url, urllen, PS(session_name), PS(id), newlen TSRMLS_CC); + } +} static void php_rinit_session_globals(TSRMLS_D) { zend_hash_init(&PS(vars), 0, NULL, NULL, 0); -#if I_KNOW_WHAT_THE_PURPOSE_OF_THIS_IS - php_url_scanner_reset_vars(TSRMLS_C); /* save even if we haven't registered */ -#endif PS(id) = NULL; PS(session_status) = php_session_none; PS(mod_data) = NULL; @@ -1461,7 +1464,7 @@ PHP_MINIT_FUNCTION(session) zend_register_auto_global("_SESSION", sizeof("_SESSION")-1 TSRMLS_CC); - PS(module_number) = module_number; + PS(module_number) = module_number; /* if we really need this var we need to init it in zts mode as well! */ REGISTER_INI_ENTRIES(); return SUCCESS; } diff --git a/ext/standard/url_scanner_ex.c b/ext/standard/url_scanner_ex.c index 972301e39f..6b586ade53 100644 --- a/ext/standard/url_scanner_ex.c +++ b/ext/standard/url_scanner_ex.c @@ -1,5 +1,5 @@ -/* Generated by re2c 0.5 on Sat May 4 21:06:57 2002 */ -#line 1 "/home/sas/src/php4/ext/standard/url_scanner_ex.re" +/* Generated by re2c 0.5 on Sun May 5 18:39:23 2002 */ +#line 1 "/home/thies/devel/php4/ext/standard/url_scanner_ex.re" /* +----------------------------------------------------------------------+ | PHP Version 4 | @@ -797,6 +797,28 @@ stop: ctx->buf.len = rest; } +char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen TSRMLS_DC) +{ + smart_str surl = {0}; + smart_str buf = {0}; + smart_str url_app = {0}; + + smart_str_setl(&surl, url, urllen); + + smart_str_appends(&url_app, name); + smart_str_appendc(&url_app, '='); + smart_str_appends(&url_app, value); + + append_modified_url(&surl, &buf, &url_app, PG(arg_separator).output); + + smart_str_0(&buf); + if (newlen) *newlen = buf.len; + + smart_str_free(&url_app); + + return buf.c; +} + static char *url_adapt_ext(const char *src, size_t srclen, size_t *newlen, zend_bool do_flush TSRMLS_DC) { diff --git a/ext/standard/url_scanner_ex.h b/ext/standard/url_scanner_ex.h index dda749812c..469c249aed 100644 --- a/ext/standard/url_scanner_ex.h +++ b/ext/standard/url_scanner_ex.h @@ -25,6 +25,8 @@ PHP_MSHUTDOWN_FUNCTION(url_scanner_ex); PHP_RINIT_FUNCTION(url_scanner_ex); PHP_RSHUTDOWN_FUNCTION(url_scanner_ex); +char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen TSRMLS_DC); + int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC); int php_url_scanner_reset_vars(TSRMLS_D); diff --git a/ext/standard/url_scanner_ex.re b/ext/standard/url_scanner_ex.re index c95f90a95a..8d4bff7f69 100644 --- a/ext/standard/url_scanner_ex.re +++ b/ext/standard/url_scanner_ex.re @@ -313,6 +313,28 @@ stop: ctx->buf.len = rest; } +char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen TSRMLS_DC) +{ + smart_str surl = {0}; + smart_str buf = {0}; + smart_str url_app = {0}; + + smart_str_setl(&surl, url, urllen); + + smart_str_appends(&url_app, name); + smart_str_appendc(&url_app, '='); + smart_str_appends(&url_app, value); + + append_modified_url(&surl, &buf, &url_app, PG(arg_separator).output); + + smart_str_0(&buf); + if (newlen) *newlen = buf.len; + + smart_str_free(&url_app); + + return buf.c; +} + static char *url_adapt_ext(const char *src, size_t srclen, size_t *newlen, zend_bool do_flush TSRMLS_DC) {