diff options
author | DukePyrolator <DukePyrolator@anope.org> | 2013-12-14 09:56:51 +0100 |
---|---|---|
committer | DukePyrolator <DukePyrolator@anope.org> | 2013-12-14 09:56:51 +0100 |
commit | adbc5a0e65ab650b2cd50f518cf9c727ec5fa7b4 (patch) | |
tree | b6f6b93c4ceffaad9a0fbc5fb96df2f47166b5d7 /modules/stats/irc2sql/irc2sql.cpp | |
parent | f9a4a0fbeffce294d9f0818fcc02d9dd0f2ec32b (diff) |
irc2sql: improved handling of netsplits
Diffstat (limited to 'modules/stats/irc2sql/irc2sql.cpp')
-rw-r--r-- | modules/stats/irc2sql/irc2sql.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/modules/stats/irc2sql/irc2sql.cpp b/modules/stats/irc2sql/irc2sql.cpp index 2b3de59e7..d838e6989 100644 --- a/modules/stats/irc2sql/irc2sql.cpp +++ b/modules/stats/irc2sql/irc2sql.cpp @@ -76,9 +76,7 @@ void IRC2SQL::OnServerQuit(Server *server) anope_override if (quitting) return; - query = "UPDATE `" + prefix + "server` " - "SET currentusers = 0, online = 'N', split_time = now() " - "WHERE name = @name@"; + query = "CALL " + prefix + "ServerQuit(@name@)"; query.SetValue("name", server->GetName()); this->RunQuery(query); } @@ -118,7 +116,7 @@ void IRC2SQL::OnUserConnect(User *u, bool &exempt) anope_override void IRC2SQL::OnUserQuit(User *u, const Anope::string &msg) anope_override { - if (quitting) + if (quitting || u->server->IsQuitting()) return; query = "CALL " + prefix + "UserQuit(@nick@)"; @@ -238,9 +236,8 @@ void IRC2SQL::OnLeaveChannel(User *u, Channel *c) anope_override * user is quitting, we already received a OnUserQuit() * at this point the user is already removed from SQL and all channels */ - if (u->Quitting()); + if (u->Quitting()) return; - query = "CALL " + prefix + "PartUser(@nick@,@channel@)"; query.SetValue("nick", u->nick); query.SetValue("channel", c->name); |