re-add accidentily nuked session_adapt_url()

This commit is contained in:
Thies C. Arntzen 2002-05-05 16:39:49 +00:00
parent b7321edb84
commit 23251ebd1a
5 changed files with 57 additions and 6 deletions

View 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);

View 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;
}

View 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)
{

View 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);

View 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)
{