session config
This commit is contained in:
@@ -1865,6 +1865,9 @@ long account_session_check(CVars in, CVars out) {
|
|||||||
long ret = PHP_INVALID_SESSION;
|
long ret = PHP_INVALID_SESSION;
|
||||||
try {
|
try {
|
||||||
long session_expire_minutes = 15;
|
long session_expire_minutes = 15;
|
||||||
|
in["session_expire_minutes"] = CfgReadChar("system.session_expire_minutes");
|
||||||
|
session_expire_minutes = in["session_expire_minutes"].Long();
|
||||||
|
|
||||||
REQ_STRING(in, "sessionid", 4, 140, "(.*)");
|
REQ_STRING(in, "sessionid", 4, 140, "(.*)");
|
||||||
OPTIONAL(in, "mode") REQ_LONG(in, "mode", 1, -1);
|
OPTIONAL(in, "mode") REQ_LONG(in, "mode", 1, -1);
|
||||||
if (in["mode"].Long() == 900 ){
|
if (in["mode"].Long() == 900 ){
|
||||||
@@ -1901,7 +1904,9 @@ long VerifySession(CVars in, CVars &out) {
|
|||||||
REQ_STRING(in, "sessionid", 4, 140, "(.*)");
|
REQ_STRING(in, "sessionid", 4, 140, "(.*)");
|
||||||
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
||||||
|
|
||||||
long session_expire_minutes = 15;
|
long session_expire_minutes = 15;
|
||||||
|
in["session_expire_minutes"] = CfgReadChar("system.session_expire_minutes");
|
||||||
|
session_expire_minutes = in["session_expire_minutes"].Long();
|
||||||
|
|
||||||
if (load_db_record(out, "SELECT s.* FROM members_session s LEFT JOIN members m ON m.id=s.member_id "
|
if (load_db_record(out, "SELECT s.* FROM members_session s LEFT JOIN members m ON m.id=s.member_id "
|
||||||
" WHERE s.member_id=%lu AND s.updated > (now() - interval '%lu minutes') AND s.session='%s'", member_id, session_expire_minutes, in["sessionid"].c_str()) > 0) {
|
" WHERE s.member_id=%lu AND s.updated > (now() - interval '%lu minutes') AND s.session='%s'", member_id, session_expire_minutes, in["sessionid"].c_str()) > 0) {
|
||||||
@@ -1928,8 +1933,10 @@ long SessionCheck(long uid, const char *sessionid, int create) {
|
|||||||
if (uid < 1 || sessionid == NULL || strlen(sessionid) < 4) {
|
if (uid < 1 || sessionid == NULL || strlen(sessionid) < 4) {
|
||||||
return -1L; // Invalif parameters
|
return -1L; // Invalif parameters
|
||||||
}
|
}
|
||||||
|
CVars in;
|
||||||
long session_expire_minutes = 15;
|
long session_expire_minutes = 15;
|
||||||
|
in["session_expire_minutes"] = CfgReadChar("system.session_expire_minutes");
|
||||||
|
session_expire_minutes = in["session_expire_minutes"].Long();
|
||||||
|
|
||||||
// Clean old sessions
|
// Clean old sessions
|
||||||
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld AND updated < (now() - interval '%lu minutes')", uid, session_expire_minutes);
|
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld AND updated < (now() - interval '%lu minutes')", uid, session_expire_minutes);
|
||||||
|
|||||||
Reference in New Issue
Block a user