#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);
}
/* }}} */
+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;
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;
}
-/* 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 |
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)
{
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);
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)
{