CVS update: php4/ext/session

From: 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; }

« previous php.version4 (#1730) next »