diff options
-rw-r--r-- | modules/chanserv/main/chanserv.cpp | 53 | ||||
-rw-r--r-- | modules/nickserv/main/nicktype.cpp | 3 |
2 files changed, 7 insertions, 49 deletions
diff --git a/modules/chanserv/main/chanserv.cpp b/modules/chanserv/main/chanserv.cpp index 59181e806..816e3031b 100644 --- a/modules/chanserv/main/chanserv.cpp +++ b/modules/chanserv/main/chanserv.cpp @@ -316,67 +316,26 @@ class ChanServCore : public Module if (newowner) { - ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Transferring foundership of " << ci->GetName() << " from deleted nick " << nc->GetDisplay() << " to " << newowner->GetDisplay(); + ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Transferring foundership of " << ci->GetName() << " from deleted account " << nc->GetDisplay() << " to " << newowner->GetDisplay(); ci->SetFounder(newowner); - ci->SetSuccessor(NULL); + + // Can't be both founder and successor + if (ci->GetSuccessor() == newowner) + ci->SetSuccessor(nullptr); } else { - ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Deleting channel " << ci->GetName() << " owned by deleted nick " << nc->GetDisplay(); + ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Deleting channel " << ci->GetName() << " owned by deleted account " << nc->GetDisplay(); ci->Delete(); continue; } } - - if (ci->GetSuccessor() == nc) - ci->SetSuccessor(NULL); - -#warning "these arent necessary?" - /* are these necessary? */ - for (unsigned j = 0; j < ci->GetAccessCount(); ++j) - { - ChanServ::ChanAccess *ca = ci->GetAccess(j); - NickServ::Account *anc = ca->GetAccount(); - - if (anc && anc == nc) - { - ca->Delete(); - break; - } - } - - for (unsigned j = 0; j < ci->GetAkickCount(); ++j) - { - AutoKick *ak = ci->GetAkick(j); - if (ak->GetAccount() == nc) - { - ak->Delete(); - break; - } - } } } void OnDelChan(ChanServ::Channel *ci) override { - /* remove access entries that are this channel */ - -#warning "also not necessary?" - for (ChanServ::Channel *c : ci->GetRefs<ChanServ::Channel *>()) - { - for (unsigned j = 0; j < c->GetAccessCount(); ++j) - { - ChanServ::ChanAccess *a = c->GetAccess(j); - - if (a->Mask().equals_ci(ci->GetName())) - { - a->Delete(); - break; - } - } - } - if (ci->c) { ci->c->RemoveMode(ci->WhoSends(), "REGISTERED", "", false); diff --git a/modules/nickserv/main/nicktype.cpp b/modules/nickserv/main/nicktype.cpp index 2cf1b2027..cedb19f2e 100644 --- a/modules/nickserv/main/nicktype.cpp +++ b/modules/nickserv/main/nicktype.cpp @@ -28,8 +28,7 @@ NickType::NickType(Module *me) : Serialize::Type<NickImpl>(me) , last_realhost(this, "last_realhost", &NickImpl::last_realhost) , time_registered(this, "time_registered", &NickImpl::time_registered) , last_seen(this, "last_seen", &NickImpl::last_seen) -#warning "this should depend?" - , nc(this, "nc", &NickImpl::account) + , nc(this, "nc", &NickImpl::account, true) { } |