summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/session/php_session.h4
-rw-r--r--ext/session/session.c17
2 files changed, 14 insertions, 7 deletions
diff --git a/ext/session/php_session.h b/ext/session/php_session.h
index 5a361a32f4..812b6dbeca 100644
--- a/ext/session/php_session.h
+++ b/ext/session/php_session.h
@@ -155,9 +155,11 @@ typedef struct ps_serializer_struct {
{ #x,ps_srlzr_encode_##x, ps_srlzr_decode_##x }
#ifdef TRANS_SID
-void session_adapt_uris(const char *, uint, char **, uint *);
+void session_adapt_uris(const char *, size_t, char **, size_t *);
+void session_adapt_url(const char *, size_t, char **, size_t *);
#else
#define session_adapt_uris(a,b,c,d)
+#define session_adapt_url(a,b,c,d)
#endif
void php_session_auto_start(void *data);
diff --git a/ext/session/session.c b/ext/session/session.c
index 288f17096f..eea32d9308 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1325,15 +1325,20 @@ PHP_FUNCTION(session_destroy)
/* }}} */
#ifdef TRANS_SID
-void session_adapt_uris(const char *src, uint srclen, char **new, uint *newlen)
+void session_adapt_uris(const char *src, size_t srclen, char **new, size_t *newlen)
{
- size_t len;
PSLS_FETCH();
- if (PS(define_sid) && PS(nr_open_sessions) > 0) {
- *new = url_adapt_ext_ex(src, srclen, PS(session_name), PS(id), &len);
- *newlen = len;
- }
+ if (PS(define_sid) && PS(nr_open_sessions) > 0)
+ *new = url_adapt_ext_ex(src, srclen, PS(session_name), PS(id), newlen);
+}
+
+void session_adapt_url(const char *url, size_t urllen, char **new, size_t *newlen)
+{
+ PSLS_FETCH();
+
+ if (PS(define_sid) && PS(nr_open_sessions) > 0)
+ *new = url_adapt_single_url(url, urllen, PS(session_name), PS(id), newlen);
}
#endif