cvs: /php4/ext/session session.c
| From: | Sascha Schumann | Date: | Thu, 22 Jul 1999 17:55:13 +0000 |
| Subject: | cvs: /php4/ext/session session.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-2544@lists.php.net to get a copy of this message | ||
sas Thu Jul 22 13:55:13 1999 EDT
Modified files:
/php4/ext/session session.c
Log:
Implement additional heuristic for session id search. Now looks into
REQUEST_URI as well.
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.31 php4/ext/session/session.c:1.32
--- php4/ext/session/session.c:1.31 Wed Jul 21 15:47:40 1999
+++ php4/ext/session/session.c Thu Jul 22 13:55:13 1999
@@ -327,17 +327,21 @@
{
pval **ppid;
pval **data;
+ char *p;
int send_cookie = 1;
int define_sid = 1;
int module_number = PS(module_number);
int nrand;
+ int lensess;
ELS_FETCH();
if (PS(nr_open_sessions) > 0) return;
+ lensess = strlen(PS(session_name));
+
if(!PS(id) &&
zend_hash_find(&EG(symbol_table), PS(session_name),
- strlen(PS(session_name)) + 1, (void **) &ppid) == SUCCESS) {
+ lensess + 1, (void **) &ppid) == SUCCESS) {
convert_to_string((*ppid));
PS(id) = estrndup((*ppid)->value.str.val, (*ppid)->value.str.len);
send_cookie = 0;
@@ -348,8 +352,21 @@
sizeof("HTTP_COOKIE_VARS"), (void **) &data) == SUCCESS &&
(*data)->type == IS_ARRAY &&
zend_hash_find((*data)->value.ht, PS(session_name),
- strlen(PS(session_name)) + 1, (void **) &ppid) == SUCCESS) {
+ lensess + 1, (void **) &ppid) == SUCCESS) {
define_sid = 0;
+ }
+
+ if(!PS(id) &&
+ zend_hash_find(&EG(symbol_table), "REQUEST_URI",
+ sizeof("REQUEST_URI"), (void **) &data) == SUCCESS &&
+ (*data)->type == IS_STRING &&
+ (p = strstr((*data)->value.str.val, PS(session_name))) &&
+ p[lensess] == '=') {
+ char *q;
+
+ p += lensess + 1;
+ if((q = strpbrk(p, "/?\\")))
+ PS(id) = estrndup(p, q - p);
}
if(!PS(id)) {