summaryrefslogtreecommitdiff
path: root/server/src/session.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2011-10-07 14:02:06 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2011-10-07 14:02:06 +0200
commit49fb23e82473d3e650ff4d3c2bf9e365455ef74c (patch)
tree80e0fd5f0f9e34087d7301acf9eae5f8b956faff /server/src/session.cc
parent5843ee0f637be32b89ab5b8a17dd8b4427bf59b3 (diff)
Dump sessions in session xml files before discard, when session_discard_path is in the config file.
Diffstat (limited to 'server/src/session.cc')
-rw-r--r--server/src/session.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/server/src/session.cc b/server/src/session.cc
index e236416..8071d45 100644
--- a/server/src/session.cc
+++ b/server/src/session.cc
@@ -152,10 +152,17 @@ void Session::discard()
{
DEBUG(session, "[%p] discard(sessionid: '%s')\n", this, sessionid.c_str());
+ // Store session file in discarded folder before deleting.
+ if(isreadonly == false && Conf::session_discard_path != "") {
+ SessionSerialiser ser(env, Conf::session_discard_path);
+ ser.save(this);
+ }
+
if(_journal) {
delete _journal;
_journal = NULL;
}
+
if(isreadonly == false) {
AutoBorrower<Database*> borrower(env->dbpool);
Database *db = borrower.get();