diff options
author | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-04-03 18:36:10 +0000 |
---|---|---|
committer | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-04-03 18:36:10 +0000 |
commit | a7316c17706bccf75ec1150ee3b318410acffbed (patch) | |
tree | 7d0e745f0b16b557f2c81376cada92ef4d1e6bb0 /src/messages.c | |
parent | a6f0b5e8d42307afc489d46c7c7724b0c0d05b70 (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/messages.c')
-rw-r--r-- | src/messages.c | 59 |
1 files changed, 34 insertions, 25 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. */ |