diff --git a/SessionId.cpp b/SessionId.cpp index 2ba516b..daa3a0e 100644 --- a/SessionId.cpp +++ b/SessionId.cpp @@ -6,7 +6,7 @@ namespace jet { SessionId::SessionId() { unsigned char hashit[64]; unsigned char hash[SHA_DIGEST_LENGTH]; - setSize(64); + setSize(40); sprintf((char *)hashit, "JETSESSION%ld", time(0)); SHA1(hashit, strlen((char *)hashit), hash); sprintf(getData(), "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", diff --git a/Tag.cpp b/Tag.cpp index e228517..b7a3d62 100644 --- a/Tag.cpp +++ b/Tag.cpp @@ -419,7 +419,7 @@ namespace jet { return getenv(name.c_str()); } else if(variable.ifNext("^")) { renderVariableName(variable, name, modifier); - return global.cookies.data[variable]; + return global.cookies.data[name]; } else { renderVariableName(variable, name, modifier); name.split("."); diff --git a/__jet.cpp b/__jet.cpp index 0c79619..4affc6b 100644 --- a/__jet.cpp +++ b/__jet.cpp @@ -2,6 +2,7 @@ #include "Exception.h" #include "Global.h" #include "SessionId.h" +#include #include #include @@ -15,22 +16,21 @@ namespace jet { if(keywordDefined("sessiondir")) { global.session = true; global.cookies = getenv("HTTP_COOKIE"); - -// if request_has_cookie then + if(global.cookies.data["session"] != NULL) { // pull sessionfile from sessiondir. // if last activity time is expired then ignore. -// follow sessiontimeoutredirecturl. -// else - SessionId sessionId; - global.headers["Set-Cookie"] << "session=" << sessionId; - if(keywordDefined("sessiontimeout")) { - time_t timeout = time(0) + keywords["sessiontimeout"].asInteger(); +// follow sessiontimeoutredirecturl. + } else { + SessionId sessionId; + global.headers["Set-Cookie"] << "session=" << sessionId; + global.cookies.data["session"] = sessionId; + if(keywordDefined("sessiontimeout")) { + time_t timeout = time(0) + keywords["sessiontimeout"].asInteger(); + } +// also save last activity time in session file. } - -// also save last activity time in session file. - } - + coreutils::ZString requestMethod(getenv("REQUEST_METHOD")); if(requestMethod == "POST") { coreutils::ZString contentLength(getenv("CONTENT_LENGTH"));