From: Sterling Hughes Date: Tue, 11 Sep 2001 10:13:44 +0000 (+0000) Subject: Add an API function for setting the session id from a session module... X-Git-Tag: PRE_SUBST_Z_MACROS~115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e302d6a5e8b889b206e450e194cf1ec6990528b5;p=php Add an API function for setting the session id from a session module... # The SRM folks wanted/needed this --- diff --git a/ext/session/php_session.h b/ext/session/php_session.h index a21132da93..0ad182e858 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -156,6 +156,8 @@ int php_session_register_serializer(const char *name, int (*encode)(PS_SERIALIZER_ENCODE_ARGS), int (*decode)(PS_SERIALIZER_DECODE_ARGS)); +PHPAPI void php_session_set_id(char *id TSRMLS_DC); + #define PS_ADD_VARL(name,namelen) \ zend_hash_add_empty_element(&PS(vars), name, namelen + 1) diff --git a/ext/session/session.c b/ext/session/session.c index 3e9f9931f3..5edb0d4fd1 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -211,6 +211,15 @@ int php_session_register_module(ps_module *ptr) return ret; } +PHPAPI void php_session_set_id(char *id TSRMLS_DC) +{ + if (PS(id)) + efree(PS(id)); + + PS(id) = estrdup(id); +} + + PHP_MINIT_FUNCTION(session); PHP_RINIT_FUNCTION(session); PHP_MSHUTDOWN_FUNCTION(session); @@ -955,7 +964,6 @@ static zend_bool php_session_destroy(TSRMLS_D) return retval; } - /* {{{ proto void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure]]]) Set session cookie parameters */ PHP_FUNCTION(session_set_cookie_params) @@ -1132,8 +1140,7 @@ PHP_FUNCTION(session_id) if (ac == 1) { convert_to_string_ex(p_name); - if (PS(id)) efree(PS(id)); - PS(id) = estrndup(Z_STRVAL_PP(p_name), Z_STRLEN_PP(p_name)); + php_session_set_id(Z_STRVAL_PP(p_name) TSRMLS_CC); } RETVAL_STRING(old, 0);