You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by mi...@apache.org on 2010/02/02 02:18:37 UTC
svn commit: r905490 - in /httpd/httpd/trunk: CHANGES
modules/session/mod_session.c
Author: minfrin
Date: Tue Feb 2 01:18:36 2010
New Revision: 905490
URL: http://svn.apache.org/viewvc?rev=905490&view=rev
Log:
mod_session: Session expiry was being initialised, but not updated
on each session save, resulting in timed out sessions when there
should not have been. Fixed.
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/session/mod_session.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=905490&r1=905489&r2=905490&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Tue Feb 2 01:18:36 2010
@@ -2,6 +2,10 @@
Changes with Apache 2.3.6
+ *) mod_session: Session expiry was being initialised, but not updated
+ on each session save, resulting in timed out sessions when there
+ should not have been. Fixed. [Graham Leggett]
+
*) mod_log_config: Add the R option to log the handler used within the
request. [Christian Folini <christian.folini netnea com>]
Modified: httpd/httpd/trunk/modules/session/mod_session.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/session/mod_session.c?rev=905490&r1=905489&r2=905490&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/session/mod_session.c (original)
+++ httpd/httpd/trunk/modules/session/mod_session.c Tue Feb 2 01:18:36 2010
@@ -174,6 +174,9 @@
apr_time_t now = apr_time_now();
int rv = 0;
+ session_dir_conf *dconf = ap_get_module_config(r->per_dir_config,
+ &session_module);
+
/* sanity checks, should we try save at all? */
if (z->written) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, SESSION_PREFIX
@@ -188,6 +191,12 @@
return APR_EGENERAL;
}
+ /* reset the expiry back to maxage, if the expiry is present */
+ if (dconf->maxage) {
+ z->expiry = now + dconf->maxage * APR_USEC_PER_SEC;
+ z->maxage = dconf->maxage;
+ }
+
/* encode the session */
rv = ap_run_session_encode(r, z);
if (OK != rv) {