diff options
author | Adam <Adam@anope.org> | 2013-08-25 02:59:54 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-08-25 04:48:43 -0400 |
commit | 847cceaba350444510b37f685d51fdfc584b1fd2 (patch) | |
tree | fc43ca0715569f88baa342a6a5b6da27032f2b64 /modules/protocol | |
parent | 09046e3c993cfca2798c11daf294f8c52bb3a785 (diff) |
Create persistent channels on startup, which used to work and got lost somewhere
Fix some oddities with using persistent channels with no botserv
Send list modes to uplink when bursting
Fix issues with persist + keepmodes
Fix /os modes clear all not clearing all status modes
Fix operwall on ratbox/plexus
Dont apply mlock in SetCorrectModes since that just recursively calls itself unncessarially
Change command logging to show the command name and not the service name
Diffstat (limited to 'modules/protocol')
-rw-r--r-- | modules/protocol/bahamut.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/inspircd12.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/ngircd.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/plexus.cpp | 9 | ||||
-rw-r--r-- | modules/protocol/ratbox.cpp | 6 | ||||
-rw-r--r-- | modules/protocol/unreal.cpp | 3 |
6 files changed, 25 insertions, 2 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index c9ad9c5fd..633b6cab3 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -178,6 +178,9 @@ class BahamutIRCdProto : public IRCDProto BotInfo *setter = BotInfo::Find(user->nick); for (size_t i = 0; i < cs.Modes().length(); ++i) c->SetMode(setter, ModeManager::FindChannelModeByChar(cs.Modes()[i]), user->GetUID(), false); + + if (uc != NULL) + uc->status = cs; } } diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index 40cb465a1..023325c02 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -261,6 +261,9 @@ class InspIRCd12Proto : public IRCDProto BotInfo *setter = BotInfo::Find(user->nick); for (size_t i = 0; i < cs.Modes().length(); ++i) c->SetMode(setter, ModeManager::FindChannelModeByChar(cs.Modes()[i]), user->GetUID(), false); + + if (uc != NULL) + uc->status = cs; } } diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp index d32d87a73..639688e70 100644 --- a/modules/protocol/ngircd.cpp +++ b/modules/protocol/ngircd.cpp @@ -98,6 +98,9 @@ class ngIRCdProto : public IRCDProto BotInfo *setter = BotInfo::Find(user->nick); for (size_t i = 0; i < cs.Modes().length(); ++i) c->SetMode(setter, ModeManager::FindChannelModeByChar(cs.Modes()[i]), user->GetUID(), false); + + if (uc != NULL) + uc->status = cs; } } diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index 37516d928..57a2f4669 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -36,7 +36,6 @@ class PlexusProto : public IRCDProto void SendGlobalNotice(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override { hybrid->SendGlobalNotice(bi, dest, msg); } void SendGlobalPrivmsg(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override { hybrid->SendGlobalPrivmsg(bi, dest, msg); } - void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) anope_override { hybrid->SendGlobopsInternal(source, buf); } void SendSQLine(User *u, const XLine *x) anope_override { hybrid->SendSQLine(u, x); } void SendSQLineDel(const XLine *x) anope_override { hybrid->SendSQLineDel(x); } void SendSGLineDel(const XLine *x) anope_override { hybrid->SendSGLineDel(x); } @@ -48,6 +47,11 @@ class PlexusProto : public IRCDProto void SendSVSHold(const Anope::string &nick, time_t t) anope_override { hybrid->SendSVSHold(nick, t); } void SendSVSHoldDel(const Anope::string &nick) anope_override { hybrid->SendSVSHoldDel(nick); } + void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) anope_override + { + UplinkSocket::Message(source) << "OPERWALL :" << buf; + } + void SendJoin(User *user, Channel *c, const ChannelStatus *status) anope_override { UplinkSocket::Message(Me) << "SJOIN " << c->creation_time << " " << c->name << " +" << c->GetModes(true, true) << " :" << user->GetUID(); @@ -65,6 +69,9 @@ class PlexusProto : public IRCDProto BotInfo *setter = BotInfo::Find(user->nick); for (size_t i = 0; i < cs.Modes().length(); ++i) c->SetMode(setter, ModeManager::FindChannelModeByChar(cs.Modes()[i]), user->GetUID(), false); + + if (uc != NULL) + uc->status = cs; } } diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index dc6cef168..7a3cc00f6 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -30,7 +30,6 @@ class RatboxProto : public IRCDProto void SendGlobalNotice(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override { hybrid->SendGlobalNotice(bi, dest, msg); } void SendGlobalPrivmsg(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override { hybrid->SendGlobalPrivmsg(bi, dest, msg); } - void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) anope_override { hybrid->SendGlobopsInternal(source, buf); } void SendSQLine(User *u, const XLine *x) anope_override { hybrid->SendSQLine(u, x); } void SendSGLine(User *u, const XLine *x) anope_override { hybrid->SendSGLine(u, x); } void SendSGLineDel(const XLine *x) anope_override { hybrid->SendSGLineDel(x); } @@ -44,6 +43,11 @@ class RatboxProto : public IRCDProto void SendTopic(const MessageSource &source, Channel *c) anope_override { hybrid->SendTopic(source, c); } bool IsIdentValid(const Anope::string &ident) anope_override { return hybrid->IsIdentValid(ident); } + void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) anope_override + { + UplinkSocket::Message(source) << "OPERWALL :" << buf; + } + void SendConnect() anope_override { UplinkSocket::Message() << "PASS " << Config->Uplinks[Anope::CurrentUplink].password << " TS 6 :" << Me->GetSID(); diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index 8e86ad729..17dca20a6 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -171,6 +171,9 @@ class UnrealIRCdProto : public IRCDProto BotInfo *setter = BotInfo::Find(user->nick); for (size_t i = 0; i < cs.Modes().length(); ++i) c->SetMode(setter, ModeManager::FindChannelModeByChar(cs.Modes()[i]), user->GetUID(), false); + + if (uc != NULL) + uc->status = cs; } } |