Working on CGI session stuff.

This commit is contained in:
Brad Arant 2025-12-04 17:05:57 -08:00
parent 8b38617b00
commit 7e835e5073
3 changed files with 14 additions and 14 deletions

View File

@ -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",

View File

@ -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(".");

View File

@ -2,6 +2,7 @@
#include "Exception.h"
#include "Global.h"
#include "SessionId.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
@ -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"));