diff options
-rw-r--r-- | src/core/ns_logout.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/ns_logout.c b/src/core/ns_logout.c index 8b5310084..f51a553d1 100644 --- a/src/core/ns_logout.c +++ b/src/core/ns_logout.c @@ -31,6 +31,7 @@ class CommandNSLogout : public Command const char *param = params.size() > 1 ? params[1].c_str() : NULL; User *u2; NickAlias *na; + struct u_chaninfolist *ci, *ci2; if (!u->nc->IsServicesOper() && nick) this->OnSyntaxError(u); @@ -63,6 +64,16 @@ class CommandNSLogout : public Command u2->isSuperAdmin = 0; /* Dont let people logout and remain a SuperAdmin */ alog("%s: %s!%s@%s logged out nickname %s", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, u2->nick); + /* Remove founder status from this user in all channels */ + ci = u2->founder_chans; + while (ci) + { + ci2 = ci->next; + delete ci; + ci = ci2; + } + u2->founder_chans = NULL; + if (nick) notice_lang(s_NickServ, u, NICK_LOGOUT_X_SUCCEEDED, nick); else |