summaryrefslogtreecommitdiff
path: root/project2/cgi
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2011-11-25 20:10:37 +0000
committerrandomdan <randomdan@localhost>2011-11-25 20:10:37 +0000
commit9f30fb16250d7960a93e8a8e91be6c5a7678b3af (patch)
tree8dffb8306f8cf5974fdb73f3132e8be8602d71e6 /project2/cgi
parentRemove the need to implement loadComplete which is empty in most cases (diff)
downloadproject2-9f30fb16250d7960a93e8a8e91be6c5a7678b3af.tar.bz2
project2-9f30fb16250d7960a93e8a8e91be6c5a7678b3af.tar.xz
project2-9f30fb16250d7960a93e8a8e91be6c5a7678b3af.zip
Don't needlessly write empty sessions
Diffstat (limited to 'project2/cgi')
-rw-r--r--project2/cgi/cgiAppEngine.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/project2/cgi/cgiAppEngine.cpp b/project2/cgi/cgiAppEngine.cpp
index 37ae19c..45ccd95 100644
--- a/project2/cgi/cgiAppEngine.cpp
+++ b/project2/cgi/cgiAppEngine.cpp
@@ -49,6 +49,7 @@ CgiApplicationEngine::env() const
void
CgiApplicationEngine::process() const
{
+ bool sessionEmpty = cursession->Empty();
startTime = boost::date_time::microsec_clock<boost::posix_time::ptime>::universal_time();
bool triedNotFound = false;
bool triedOnError = false;
@@ -85,8 +86,11 @@ CgiApplicationEngine::process() const
addEnvData(currentStage.get<3>().get());
}
HttpHeaderPtr header = rs->getHeader();
- header->setCookie(cgicc::HTTPCookie(SESSIONID, cursession->ID.str(), "Session ID",
- _env->getServerName().substr(_env->getServerName().find(".")), env()->sessionTimeOut, "/", false));
+ if (!sessionEmpty || !cursession->Empty()) {
+ sessionsContainer->SaveSession(cursession);
+ header->setCookie(cgicc::HTTPCookie(SESSIONID, cursession->ID.str(), "Session ID",
+ _env->getServerName().substr(_env->getServerName().find(".")), env()->sessionTimeOut, "/", false));
+ }
header->render(IO);
if (currentStage.get<2>()) {
TransformSourcePtr ts = currentStage.get<2>();
@@ -101,7 +105,6 @@ CgiApplicationEngine::process() const
delete ddd;
}
}
- sessionsContainer->SaveSession(cursession);
}
CgiApplicationEngine::Stage::Stage(const CgiEnvironment * env) :