From: Zeev Suraski Date: Sun, 26 Aug 2001 11:14:35 +0000 (+0000) Subject: Fix trans-sid. X-Git-Tag: PRE_SUBST_Z_MACROS~357 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc9769ea9691fb02b81c88535f53b2679aff4d07;p=php Fix trans-sid. Still need to figure out how to turn trans-sid only when sessions are actually used. --- diff --git a/ext/session/php_session.h b/ext/session/php_session.h index a9bc88ea8e..589e0661d1 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -144,7 +144,6 @@ typedef struct ps_serializer_struct { #define PS_SERIALIZER_ENTRY(x) \ { #x, PS_SERIALIZER_ENCODE_NAME(x), PS_SERIALIZER_DECODE_NAME(x) } -void session_adapt_uris(const char *, size_t, char **, size_t *,zend_bool TSRMLS_DC); 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); diff --git a/ext/session/session.c b/ext/session/session.c index ac3b6f0c01..3837fff0cc 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -83,6 +83,17 @@ php_ps_globals ps_globals; static ps_module *_php_find_ps_module(char *name TSRMLS_DC); static const ps_serializer *_php_find_ps_serializer(char *name TSRMLS_DC); +static int session_adapt_uris(const char *src, size_t srclen, char **new, size_t *newlen, zend_bool do_flush TSRMLS_DC) +{ + if (PS(define_sid) && (PS(session_status) == php_session_active)) { + *new = url_adapt_ext_ex(src, srclen, PS(session_name), PS(id), newlen, do_flush TSRMLS_CC); + return SUCCESS; + } else { + return FAILURE; + } +} + + static void php_session_output_handler(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC) { zend_bool do_flush; @@ -90,7 +101,9 @@ static void php_session_output_handler(char *output, uint output_len, char **han if (mode&PHP_OUTPUT_HANDLER_END) { do_flush=1; } - session_adapt_uris(output, output_len, handled_output, handled_output_len, do_flush TSRMLS_CC); + if (session_adapt_uris(output, output_len, handled_output, handled_output_len, do_flush TSRMLS_CC)==FAILURE) { + *handled_output = NULL; + } } @@ -1308,13 +1321,6 @@ PHP_FUNCTION(session_destroy) } /* }}} */ -void session_adapt_uris(const char *src, size_t srclen, char **new, size_t *newlen, zend_bool do_flush TSRMLS_DC) -{ - if (PS(define_sid) && (PS(session_status) == php_session_active)) { - *new = url_adapt_ext_ex(src, srclen, PS(session_name), PS(id), newlen, do_flush TSRMLS_CC); - } -} - void session_adapt_url(const char *url, size_t urllen, char **new, size_t *newlen TSRMLS_DC) { if (PS(define_sid) && (PS(session_status) == php_session_active)) {