summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/chanserv/main/chanserv.cpp53
-rw-r--r--modules/nickserv/main/nicktype.cpp3
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)
{
}