diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-03 00:06:55 +0100 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-03 00:06:55 +0100 |
| commit | 985c50e52b6fcdeb4e60e63e984243069ad79be4 (patch) | |
| tree | 0bbf4d6fd521cc14fb7cc9552922d221fa8cd66b /database | |
| parent | f4040e08913d7ad586329cef926f287994f8ca0c (diff) | |
| download | eurephia-985c50e52b6fcdeb4e60e63e984243069ad79be4.tar.gz eurephia-985c50e52b6fcdeb4e60e63e984243069ad79be4.tar.xz eurephia-985c50e52b6fcdeb4e60e63e984243069ad79be4.zip | |
Changed the logout behaviour to avoid login and/or access control check when user is about to logout
Diffstat (limited to 'database')
| -rw-r--r-- | database/eurephiadb_driver.h | 2 | ||||
| -rw-r--r-- | database/sqlite/edb-sqlite.c | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/database/eurephiadb_driver.h b/database/eurephiadb_driver.h index e59f2ba..ead72a5 100644 --- a/database/eurephiadb_driver.h +++ b/database/eurephiadb_driver.h @@ -89,7 +89,7 @@ int (*eDBstore_session_value) (eurephiaCTX *ctx, eurephiaSESSION *skey, int mode int (*eDBadminAuth) (eurephiaCTX *ctx, const char *req_acc, const char *uname, const char *pwd); int (*eDBadminValidateSession) (eurephiaCTX *ctx, const char *sesskey, const char *req_acc); int (*eDBadminRegisterLogin) (eurephiaCTX *ctx, eurephiaSESSION *session); -int (*eDBadminLogout) (eurephiaCTX *ctx, eurephiaSESSION *session); +int (*eDBadminLogout) (eurephiaCTX *ctx, const char *session); int (*eDBadminConfigSet) (eurephiaCTX *ctx, const char *key, const char *val); int (*eDBadminConfigDelete) (eurephiaCTX *ctx, const char *key); diff --git a/database/sqlite/edb-sqlite.c b/database/sqlite/edb-sqlite.c index 220d9f7..05e16f7 100644 --- a/database/sqlite/edb-sqlite.c +++ b/database/sqlite/edb-sqlite.c @@ -1153,17 +1153,17 @@ int eDBadminRegisterLogin(eurephiaCTX *ctx, eurephiaSESSION *session) { return 1; } -int eDBadminLogout(eurephiaCTX *ctx, eurephiaSESSION *session) { +int eDBadminLogout(eurephiaCTX *ctx, const char *sessionkey) { dbresult *res = NULL; - assert((ctx != NULL) && (session != NULL) && (session->sessionkey != NULL)); + assert((ctx != NULL) && (sessionkey != NULL)); // Update session as logged out res = sqlite_query(ctx, "UPDATE eurephia_adminlog " " SET logout = CURRENT_TIMESTAMP, status = 3" " WHERE sessionkey = '%q'", - session->sessionkey); + sessionkey); if( !res ) { eurephia_log(ctx, LOG_FATAL, 0, "Could not manage to register the session as logged out"); return 0; @@ -1171,10 +1171,10 @@ int eDBadminLogout(eurephiaCTX *ctx, eurephiaSESSION *session) { sqlite_free_results(res); // Delete session variables - res = sqlite_query(ctx, "DELETE FROM openvpn_sessions WHERE sessionkey = '%q'", session->sessionkey); + res = sqlite_query(ctx, "DELETE FROM openvpn_sessions WHERE sessionkey = '%q'", sessionkey); if( res == NULL ) { eurephia_log(ctx, LOG_ERROR, 0, - "Could not delete session variables (%s))", session->sessionkey); + "Could not delete session variables (%s))", sessionkey); return 0; } sqlite_free_results(res); |
