diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.cpp | 4 | ||||
-rw-r--r-- | src/logger.cpp | 9 | ||||
-rw-r--r-- | src/nickalias.cpp | 6 | ||||
-rw-r--r-- | src/nickcore.cpp | 5 | ||||
-rw-r--r-- | src/regchannel.cpp | 7 | ||||
-rw-r--r-- | src/servers.cpp | 9 |
6 files changed, 25 insertions, 15 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 22f90e28f..e6bd816df 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -812,7 +812,7 @@ void Channel::SetCorrectModes(User *user, bool give_modes) /* Always give op. If we have already given one mode, don't give more until it has a symbol */ if (cm->name == "OP" || !given || (giving && cm->symbol)) { - this->SetMode(NULL, cm, user->GetUID()); + this->SetMode(NULL, cm, user->GetUID(), false); /* Now if this contains a symbol don't give any more modes, to prevent setting +qaohv etc on users */ giving = !cm->symbol; given = true; @@ -824,7 +824,7 @@ void Channel::SetCorrectModes(User *user, bool give_modes) if (cm->name == "VOICE") take_modes = false; else - this->RemoveMode(NULL, cm, user->GetUID()); + this->RemoveMode(NULL, cm, user->GetUID(), false); } } } diff --git a/src/logger.cpp b/src/logger.cpp index e094f8da5..02b94f49c 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -148,8 +148,7 @@ Anope::string Log::BuildPrefix() const if (!this->c && !(this->u || this->nc)) break; buffer += "ADMIN: "; - size_t sl = this->c->name.find('/'); - Anope::string cname = sl != Anope::string::npos ? this->c->name.substr(sl + 1) : this->c->name; + Anope::string cname = source != NULL ? source->command : this->c->name; if (this->u) buffer += this->u->GetMask() + " used " + cname + " "; else if (this->nc) @@ -163,8 +162,7 @@ Anope::string Log::BuildPrefix() const if (!this->c && !(this->u || this->nc)) break; buffer += "OVERRIDE: "; - size_t sl = this->c->name.find('/'); - Anope::string cname = sl != Anope::string::npos ? this->c->name.substr(sl + 1) : this->c->name; + Anope::string cname = source != NULL ? source->command : this->c->name; if (this->u) buffer += this->u->GetMask() + " used " + cname + " "; else if (this->nc) @@ -178,8 +176,7 @@ Anope::string Log::BuildPrefix() const if (!this->c) break; buffer += "COMMAND: "; - size_t sl = this->c->name.find('/'); - Anope::string cname = sl != Anope::string::npos ? this->c->name.substr(sl + 1) : this->c->name; + Anope::string cname = source != NULL ? source->command : this->c->name; if (this->u) buffer += this->u->GetMask() + " used " + cname + " "; else if (this->source) diff --git a/src/nickalias.cpp b/src/nickalias.cpp index 488017346..080bf5ce5 100644 --- a/src/nickalias.cpp +++ b/src/nickalias.cpp @@ -140,7 +140,6 @@ void NickAlias::Serialize(Serialize::Data &data) const data.SetType("time_registered", Serialize::Data::DT_INT); data["time_registered"] << this->time_registered; data.SetType("time_registered", Serialize::Data::DT_INT); data["last_seen"] << this->last_seen; data["nc"] << this->nc->display; - Extensible::ExtensibleSerialize(this, this, data); if (this->HasVhost()) { @@ -149,6 +148,8 @@ void NickAlias::Serialize(Serialize::Data &data) const data["vhost_creator"] << this->GetVhostCreator(); data["vhost_time"] << this->GetVhostCreated(); } + + Extensible::ExtensibleSerialize(this, this, data); } Serializable* NickAlias::Unserialize(Serializable *obj, Serialize::Data &data) @@ -189,7 +190,6 @@ Serializable* NickAlias::Unserialize(Serializable *obj, Serialize::Data &data) data["last_realhost"] >> na->last_realhost; data["time_registered"] >> na->time_registered; data["last_seen"] >> na->last_seen; - Extensible::ExtensibleUnserialize(na, na, data); Anope::string vhost_ident, vhost_host, vhost_creator; time_t vhost_time; @@ -201,6 +201,8 @@ Serializable* NickAlias::Unserialize(Serializable *obj, Serialize::Data &data) na->SetVhost(vhost_ident, vhost_host, vhost_creator, vhost_time); + Extensible::ExtensibleUnserialize(na, na, data); + /* compat */ bool b; b = false; diff --git a/src/nickcore.cpp b/src/nickcore.cpp index 57d7ad41d..0f09784c5 100644 --- a/src/nickcore.cpp +++ b/src/nickcore.cpp @@ -68,12 +68,12 @@ void NickCore::Serialize(Serialize::Data &data) const data["pass"] << this->pass; data["email"] << this->email; data["language"] << this->language; - Extensible::ExtensibleSerialize(this, this, data); for (unsigned i = 0; i < this->access.size(); ++i) data["access"] << this->access[i] << " "; data["memomax"] << this->memos.memomax; for (unsigned i = 0; i < this->memos.ignores.size(); ++i) data["memoignores"] << this->memos.ignores[i] << " "; + Extensible::ExtensibleSerialize(this, this, data); } Serializable* NickCore::Unserialize(Serializable *obj, Serialize::Data &data) @@ -92,7 +92,6 @@ Serializable* NickCore::Unserialize(Serializable *obj, Serialize::Data &data) data["pass"] >> nc->pass; data["email"] >> nc->email; data["language"] >> nc->language; - Extensible::ExtensibleUnserialize(nc, nc, data); { Anope::string buf; data["access"] >> buf; @@ -111,6 +110,8 @@ Serializable* NickCore::Unserialize(Serializable *obj, Serialize::Data &data) nc->memos.ignores.push_back(buf); } + Extensible::ExtensibleUnserialize(nc, nc, data); + /* compat */ bool b; b = false; diff --git a/src/regchannel.cpp b/src/regchannel.cpp index 85b1f5b68..c2119453b 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -220,7 +220,6 @@ void ChannelInfo::Serialize(Serialize::Data &data) const data["last_topic_setter"] << this->last_topic_setter; data.SetType("last_topic_time", Serialize::Data::DT_INT); data["last_topic_time"] << this->last_topic_time; data.SetType("bantype", Serialize::Data::DT_INT); data["bantype"] << this->bantype; - Extensible::ExtensibleSerialize(this, this, data); { Anope::string levels_buffer; for (Anope::map<int16_t>::const_iterator it = this->levels.begin(), it_end = this->levels.end(); it != it_end; ++it) @@ -233,6 +232,8 @@ void ChannelInfo::Serialize(Serialize::Data &data) const data["memomax"] << this->memos.memomax; for (unsigned i = 0; i < this->memos.ignores.size(); ++i) data["memoignores"] << this->memos.ignores[i] << " "; + + Extensible::ExtensibleSerialize(this, this, data); } Serializable* ChannelInfo::Unserialize(Serializable *obj, Serialize::Data &data) @@ -251,8 +252,6 @@ Serializable* ChannelInfo::Unserialize(Serializable *obj, Serialize::Data &data) else ci = new ChannelInfo(sname); - Extensible::ExtensibleUnserialize(ci, ci, data); - ci->SetFounder(NickCore::Find(sfounder)); ci->SetSuccessor(NickCore::Find(ssuccessor)); @@ -288,6 +287,8 @@ Serializable* ChannelInfo::Unserialize(Serializable *obj, Serialize::Data &data) ci->memos.ignores.push_back(buf); } + Extensible::ExtensibleUnserialize(ci, ci, data); + /* compat */ bool b; b = false; diff --git a/src/servers.cpp b/src/servers.cpp index c3ec328f9..d4c76a217 100644 --- a/src/servers.cpp +++ b/src/servers.cpp @@ -109,11 +109,20 @@ Server::Server(Server *up, const Anope::string &sname, unsigned shops, const Ano for (channel_map::const_iterator it = ChannelList.begin(), it_end = ChannelList.end(); it != it_end; ++it) { Channel *c = it->second; + if (c->users.empty()) IRCD->SendChannel(c); else for (Channel::ChanUserList::const_iterator cit = c->users.begin(), cit_end = c->users.end(); cit != cit_end; ++cit) IRCD->SendJoin(cit->second->user, c, &cit->second->status); + + for (Channel::ModeList::const_iterator it2 = c->GetModes().begin(); it2 != c->GetModes().end(); ++it2) + { + ChannelMode *cm = ModeManager::FindChannelModeByName(it2->first); + if (!cm || cm->type != MODE_LIST) + continue; + ModeManager::StackerAdd(c->ci->WhoSends(), c, cm, true, it2->second); + } } } } |