]> granicus.if.org Git - php/commitdiff
re-add accidentily nuked session_adapt_url()
authorThies C. Arntzen <thies@php.net>
Sun, 5 May 2002 16:39:49 +0000 (16:39 +0000)
committerThies C. Arntzen <thies@php.net>
Sun, 5 May 2002 16:39:49 +0000 (16:39 +0000)
ext/session/php_session.h
ext/session/session.c
ext/standard/url_scanner_ex.c
ext/standard/url_scanner_ex.h
ext/standard/url_scanner_ex.re

index 8bd90773b5c2b4d38a0a7befd2db402d4a4aec52..c458b11b563350ff61a24edd7db204f0f6d47922 100644 (file)
@@ -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);
 
index a028851c34704067baeb4aad6bc8aa6606ad8cdf..b19d35ec347bc1bca4a9fe73f0c28f1e4074956f 100644 (file)
@@ -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;
 }
index 972301e39f45507481374ac28e761b718dbcd618..6b586ade537a42d260116546b85f36f1246486e9 100644 (file)
@@ -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)
 {
index dda749812cf7b1eb7abeed1b93572f78ed1fec10..469c249aedfb0a7c6b5d79f2b821b6d1a437dc52 100644 (file)
@@ -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);
 
index c95f90a95ada5da493e0b566afa67ad2da99cbfc..8d4bff7f696499398f42762337aa62f9846d76c5 100644 (file)
@@ -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)
 {