diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-04-24 22:20:00 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-04-24 22:20:00 +0000 |
commit | b8674ee3fbaa9d631aa57156dfb34107072c4346 (patch) | |
tree | 305d83f01b9b85b66151e0706f3eeca56815f9b0 /src/modules/mysql/db_mysql_execute.cpp | |
parent | 9f47e2b137799fa44820d52cf791dbfd3d7912ec (diff) |
Logout the SQLUser & any fake users after using commands
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2911 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/mysql/db_mysql_execute.cpp')
-rw-r--r-- | src/modules/mysql/db_mysql_execute.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/modules/mysql/db_mysql_execute.cpp b/src/modules/mysql/db_mysql_execute.cpp index 125bdfca0..dcae53ade 100644 --- a/src/modules/mysql/db_mysql_execute.cpp +++ b/src/modules/mysql/db_mysql_execute.cpp @@ -66,7 +66,6 @@ class FakeUser : public User void SendMessage(const std::string &, const char *, ...) { } void SendMessage(const std::string &, const std::string &) { } - void Login(NickCore *core) { nc = core; } NickCore *Account() const { return nc; } const bool IsIdentified() const { return nc ? true : false; } } SQLUser; @@ -95,14 +94,15 @@ class SQLTimer : public Timer { User *u; NickAlias *na = NULL; + bool logout = false; /* If they want -SQLUser to execute the command, use it */ if (qres[i]["nick"] == "-SQLUser") { u = &SQLUser; u->SetNewNick("-SQLUser"); - SQLCore.Users.clear(); u->Login(&SQLCore); + logout = true; } else { @@ -119,6 +119,7 @@ class SQLTimer : public Timer u = &SQLUser; u->SetNewNick(SQLAssign(qres[i]["nick"])); u->Login(na->nc); + logout = true; } } else @@ -131,6 +132,7 @@ class SQLTimer : public Timer u = &SQLUser; u->SetNewNick(SQLAssign(qres[i]["nick"])); u->Logout(); + logout = true; } } } @@ -147,6 +149,9 @@ class SQLTimer : public Timer char *cmd = strtok(cmdbuf, " "); mod_run_cmd(bi->nick, u, bi->cmdTable, cmd); delete [] cmdbuf; + + if (logout) + u->Logout(); } query << "TRUNCATE TABLE `anope_commands`"; |