CVS update: php4/ext/session
| From: | andrey | Date: | Tue, 29 Jun 1999 15:39:59 +0000 |
| Subject: | CVS update: php4/ext/session | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-1730@lists.php.net to get a copy of this message | ||
Date: Tuesday June 29, 1999 @ 11:39
Author: andrey
Update of /repository/php4/ext/session
In directory php:/tmp/cvs-serv17539
Modified Files:
php_session.h session.c
Log Message:
Added session expiration.
Index: php4/ext/session/php_session.h
diff -u php4/ext/session/php_session.h:1.5 php4/ext/session/php_session.h:1.6
--- php4/ext/session/php_session.h:1.5 Mon Jun 28 11:46:56 1999
+++ php4/ext/session/php_session.h Tue Jun 29 11:39:59 1999
@@ -78,6 +78,7 @@
char *save_path;
char *session_name;
char *id;
+ int lifetime;
ps_module *mod;
void *mod_data;
HashTable vars;
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.18 php4/ext/session/session.c:1.19
--- php4/ext/session/session.c:1.18 Mon Jun 28 11:46:56 1999
+++ php4/ext/session/session.c Tue Jun 29 11:39:59 1999
@@ -47,6 +47,7 @@
#include "php_session.h"
#include "ext/standard/md5.h"
#include "ext/standard/php3_var.h"
+#include "ext/standard/datetime.h"
#ifdef ZTS
@@ -79,6 +80,7 @@
PHP_INI_ENTRY("session_auto_start", "0", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("session_gc_probability", "1", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("session_gc_maxlifetime", "1440", PHP_INI_ALL, NULL)
+ PHP_INI_ENTRY("session_lifetime", "60", PHP_INI_ALL, NULL)
PHP_INI_END()
@@ -252,16 +254,29 @@
PS(nr_open_sessions)--;
}
-#define COOKIE_FMT "Set-cookie: %s=%s"
+#define COOKIE_FMT "Set-cookie: %s=%s"
+#define COOKIE_EXPIRES "; expires="
static void _php_session_send_cookie(PSLS_D)
{
- int len;
+ int len;
char *cookie;
+ char *date_fmt = NULL;
+ PSLS_FETCH();
len = strlen(PS(session_name)) + strlen(PS(id)) + sizeof(COOKIE_FMT);
+ if (PS(lifetime) > 0) {
+ date_fmt = php3_std_date(time(NULL) + PS(lifetime));
+ len += sizeof(COOKIE_EXPIRES) + strlen(date_fmt);
+ }
cookie = emalloc(len + 1);
+
snprintf(cookie, len, COOKIE_FMT, PS(session_name), PS(id));
+ if (PS(lifetime) > 0) {
+ strcat(cookie, COOKIE_EXPIRES);
+ strcat(cookie, date_fmt);
+ efree(date_fmt);
+ }
sapi_add_header(cookie, len);
}
@@ -555,9 +570,10 @@
zend_hash_init(&PS(vars), 0, NULL, NULL, 0);
PS(save_path) = estrdup(INI_STR("session_save_path"));
PS(session_name) = estrdup(INI_STR("session_name"));
- PS(gc_probability) = INI_INT("gc_probability");
- PS(gc_maxlifetime) = INI_INT("gc_maxlifetime");
+ PS(gc_probability) = INI_INT("session_gc_probability");
+ PS(gc_maxlifetime) = INI_INT("session_gc_maxlifetime");
PS(id) = NULL;
+ PS(lifetime) = INI_INT("session_lifetime");
PS(nr_open_sessions) = 0;
PS(mod_data) = NULL;
}