summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2009-04-03 18:36:10 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2009-04-03 18:36:10 +0000
commita7316c17706bccf75ec1150ee3b318410acffbed (patch)
tree7d0e745f0b16b557f2c81376cada92ef4d1e6bb0 /src
parenta6f0b5e8d42307afc489d46c7c7724b0c0d05b70 (diff)
Fix ratbox protocol to use TS6SID for sending (UN)RESV, and fix m_privmsg to correctly find the core pseudo-clients if the IRCd sends a UID instead of a nick.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2252 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/messages.c59
-rw-r--r--src/protocol/ratbox.c6
2 files changed, 36 insertions, 29 deletions
diff --git a/src/messages.c b/src/messages.c
index b0c1c520d..a1135b2f1 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -165,32 +165,41 @@ int m_privmsg(const char *source, const char *receiver, const char *msg)
starttime = time(NULL);
- if (!stricmp(receiver, s_OperServ)) {
- if (!is_oper(u) && OSOpersOnly) {
- notice_lang(s_OperServ, u, ACCESS_DENIED);
- if (WallBadOS)
- ircdproto->SendGlobops(s_OperServ,
- "Denied access to %s from %s!%s@%s (non-oper)",
- s_OperServ, u->nick, u->GetIdent().c_str(),
- u->host);
- } else {
- operserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ bi = findbot(receiver);
+
+ if (bi)
+ {
+ if (!stricmp(bi->nick, s_OperServ))
+ {
+ if (!is_oper(u) && OSOpersOnly)
+ {
+ notice_lang(s_OperServ, u, ACCESS_DENIED);
+ if (WallBadOS)
+ ircdproto->SendGlobops(s_OperServ, "Denied access to %s from %s!%s@%s (non-oper)", s_OperServ, u->nick, u->GetIdent().c_str(), u->host);
+ }
+ else
+ operserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ }
+ else if (!stricmp(bi->nick, s_NickServ))
+ nickserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ else if (!stricmp(bi->nick, s_ChanServ))
+ {
+ if (!is_oper(u) && CSOpersOnly)
+ notice_lang(s_ChanServ, u, ACCESS_DENIED);
+ else
+ chanserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ }
+ else if (!stricmp(bi->nick, s_MemoServ))
+ memoserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ else if (s_HostServ && !stricmp(bi->nick, s_HostServ))
+ hostserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ else if (s_BotServ)
+ {
+ if (!stricmp(bi->nick, s_BotServ))
+ botserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
+ else
+ botmsgs(u, bi, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
}
- } else if (!stricmp(receiver, s_NickServ)) {
- nickserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
- } else if (!stricmp(receiver, s_ChanServ)) {
- if (!is_oper(u) && CSOpersOnly)
- notice_lang(s_ChanServ, u, ACCESS_DENIED);
- else
- chanserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
- } else if (!stricmp(receiver, s_MemoServ)) {
- memoserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
- } else if (s_HostServ && !stricmp(receiver, s_HostServ)) {
- hostserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
- } else if (s_BotServ && !stricmp(receiver, s_BotServ)) {
- botserv(u, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
- } else if (s_BotServ && (bi = findbot(receiver))) {
- botmsgs(u, bi, const_cast<char *>(msg)); // XXX Unsafe cast, this needs reviewing -- CyberBotX
}
/* Add to ignore list if the command took a significant amount of time. */
diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c
index cb9fc7b62..4829377d9 100644
--- a/src/protocol/ratbox.c
+++ b/src/protocol/ratbox.c
@@ -521,8 +521,7 @@ class RatboxProto : public IRCDTS6Proto
void SendSQLine(const char *mask, const char *reason)
{
- BotInfo *bi = findbot(s_OperServ);
- send_cmd(bi ? bi->uid : s_OperServ, "RESV * %s :%s", mask, reason);
+ send_cmd(TS6SID, "RESV * %s :%s", mask, reason);
}
void SendSGLineDel(const char *mask)
@@ -545,8 +544,7 @@ class RatboxProto : public IRCDTS6Proto
void SendSQLineDel(const char *user)
{
- BotInfo *bi = findbot(s_OperServ);
- send_cmd(bi ? bi->uid : s_OperServ, "UNRESV * %s", user);
+ send_cmd(TS6SID, "UNRESV * %s", user);
}
void SendJoin(BotInfo *user, const char *channel, time_t chantime)