|
|
ca8514 |
diff --git a/modules/session/mod_session.c b/modules/session/mod_session.c
|
|
|
ca8514 |
index 10e6396..7ee477c 100644
|
|
|
ca8514 |
--- a/modules/session/mod_session.c
|
|
|
ca8514 |
+++ b/modules/session/mod_session.c
|
|
|
ca8514 |
@@ -126,20 +126,23 @@ static apr_status_t ap_session_load(request_rec * r, session_rec ** z)
|
|
|
ca8514 |
|
|
|
ca8514 |
/* found a session that hasn't expired? */
|
|
|
ca8514 |
now = apr_time_now();
|
|
|
ca8514 |
+
|
|
|
ca8514 |
if (zz) {
|
|
|
ca8514 |
- if (zz->expiry && zz->expiry < now) {
|
|
|
ca8514 |
+ /* load the session attibutes */
|
|
|
ca8514 |
+ rv = ap_run_session_decode(r, zz);
|
|
|
ca8514 |
+
|
|
|
ca8514 |
+ /* having a session we cannot decode is just as good as having
|
|
|
ca8514 |
+ none at all */
|
|
|
ca8514 |
+ if (OK != rv) {
|
|
|
ca8514 |
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01817)
|
|
|
ca8514 |
+ "error while decoding the session, "
|
|
|
ca8514 |
+ "session not loaded: %s", r->uri);
|
|
|
ca8514 |
zz = NULL;
|
|
|
ca8514 |
}
|
|
|
ca8514 |
- else {
|
|
|
ca8514 |
- /* having a session we cannot decode is just as good as having
|
|
|
ca8514 |
- none at all */
|
|
|
ca8514 |
- rv = ap_run_session_decode(r, zz);
|
|
|
ca8514 |
- if (OK != rv) {
|
|
|
ca8514 |
- ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01817)
|
|
|
ca8514 |
- "error while decoding the session, "
|
|
|
ca8514 |
- "session not loaded: %s", r->uri);
|
|
|
ca8514 |
- zz = NULL;
|
|
|
ca8514 |
- }
|
|
|
ca8514 |
+
|
|
|
ca8514 |
+ /* invalidate session if session is expired */
|
|
|
ca8514 |
+ if (zz && zz->expiry && zz->expiry < now) {
|
|
|
ca8514 |
+ zz = NULL;
|
|
|
ca8514 |
}
|
|
|
ca8514 |
}
|
|
|
ca8514 |
|