diff options
author | dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-06-18 16:38:43 +0000 |
---|---|---|
committer | dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-06-18 16:38:43 +0000 |
commit | 1d1c478e4ff9c484be01ad0d55d5f3c0a91b2561 (patch) | |
tree | e2d601a6ee6a167671da595b22be602aaaa6c4a1 /operserv.c | |
parent | bb020753879abb7ede7c0343f528027a2b99ebb2 (diff) |
BUILD : 1.7.4 (206) BUGS : 55 NOTES : Added proper Bahamut1.8 support. Merged r132:195 from branch branches/proto/anope-bahamut18 which should now be obsolete.
git-svn-id: svn://svn.anope.org/anope/trunk@206 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@148 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'operserv.c')
-rw-r--r-- | operserv.c | 91 |
1 files changed, 21 insertions, 70 deletions
diff --git a/operserv.c b/operserv.c index 1aba50016..a21d5dc15 100644 --- a/operserv.c +++ b/operserv.c @@ -1023,67 +1023,20 @@ void oper_global(char *nick, char *fmt, ...) { va_list args; char msg[2048]; /* largest valid message is 512, this should cover any global */ - int i; + Server *s; va_start(args, fmt); vsnprintf(msg, sizeof(msg), fmt, args); va_end(args); -#ifdef IRC_HYBRID - if (DomainNumber > 0) { - for (i = 0; i < DomainNumber; i++) { - if ((nick) && (!AnonymousGlobal)) { - send_cmd(s_GlobalNoticer, "NOTICE $$*.%s :[%s] %s", - NetworkDomains[i], nick, msg); - } else { - send_cmd(s_GlobalNoticer, "NOTICE $$*.%s :%s", - NetworkDomains[i], msg); - } - } - } else { - /* Go through all common top-level domains. If you have others, - * add them here. - */ - if ((nick) && (!AnonymousGlobal)) { - notice(s_GlobalNoticer, "$$*.com", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$$*.net", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$$*.org", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$$*.edu", "[%s] %s", nick, msg); - } else { - notice(s_GlobalNoticer, "$$*.com", "%s", msg); - notice(s_GlobalNoticer, "$$*.net", "%s", msg); - notice(s_GlobalNoticer, "$$*.org", "%s", msg); - notice(s_GlobalNoticer, "$$*.edu", "%s", msg); - } - } -#else - if (DomainNumber > 0) { - for (i = 0; i < DomainNumber; i++) { - if ((nick) && (!AnonymousGlobal)) { - send_cmd(s_GlobalNoticer, "NOTICE $*.%s :[%s] %s", - NetworkDomains[i], nick, msg); - } else { - send_cmd(s_GlobalNoticer, "NOTICE $*.%s :%s", - NetworkDomains[i], msg); - } - } - } else { - /* Go through all common top-level domains. If you have others, - * add them here. - */ - if ((nick) && (!AnonymousGlobal)) { - notice(s_GlobalNoticer, "$*.com", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$*.net", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$*.org", "[%s] %s", nick, msg); - notice(s_GlobalNoticer, "$*.edu", "[%s] %s", nick, msg); - } else { - notice(s_GlobalNoticer, "$*.com", "%s", msg); - notice(s_GlobalNoticer, "$*.net", "%s", msg); - notice(s_GlobalNoticer, "$*.org", "%s", msg); - notice(s_GlobalNoticer, "$*.edu", "%s", msg); - } + s = first_server(0); + while (s) { + if ((nick) && (!AnonymousGlobal)) + notice_server(s_GlobalNoticer, s, "[%s] %s", nick, msg); + else + notice_server(s_GlobalNoticer, s, "%s", msg); + s = next_server(0); } -#endif } /*************************************************************************/ @@ -1476,7 +1429,7 @@ static int do_os_mode(User * u) return MOD_CONT; #endif } else { - send_cmd(s_OperServ, "MODE %s %s", chan, modes); + send_mode(s_OperServ, chan, "%s", modes); ac = split_buf(modes, &av, 1); chan_set_modes(s_OperServ, c, ac, av, 0); @@ -1527,7 +1480,7 @@ static int do_operumodes(User * u) if (!(u2 = finduser(nick))) { notice_lang(s_OperServ, u, NICK_X_NOT_IN_USE, nick); } else { - send_cmd(s_OperServ, "MODE %s %s", nick, modes); + send_mode(s_OperServ, nick, "%s", modes); change_user_mode(u2, modes, NULL); @@ -1575,7 +1528,7 @@ static int do_operoline(User * u) notice_lang(s_OperServ, u, NICK_X_NOT_IN_USE, nick); } else if (u2 && flags[0] == '+') { send_cmd(s_OperServ, "SVSO %s %s", nick, flags); - send_cmd(s_OperServ, "MODE %s +o", nick); + send_mode(s_OperServ, nick, "+o"); change_user_mode(u2, "+o", NULL); notice_lang(s_OperServ, u2, OPER_OLINE_IRCOP); notice_lang(s_OperServ, u, OPER_OLINE_SUCCESS, flags, nick); @@ -1644,8 +1597,7 @@ static int do_clearmodes(User * u) argv[0] = sstrdup("-o"); argv[1] = cu->user->nick; - send_cmd(s_OperServ, "MODE %s -o %s", c->name, - cu->user->nick); + send_mode(s_OperServ, c->name, "-o %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); @@ -1661,8 +1613,7 @@ static int do_clearmodes(User * u) argv[0] = sstrdup("-v"); argv[1] = sstrdup(cu->user->nick); - send_cmd(s_OperServ, "MODE %s -v %s", c->name, - cu->user->nick); + send_mode(s_OperServ, c->name, "-v %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); @@ -1678,8 +1629,7 @@ static int do_clearmodes(User * u) argv[0] = sstrdup("-h"); argv[1] = sstrdup(cu->user->nick); - send_cmd(s_OperServ, "MODE %s -h %s", c->name, - cu->user->nick); + send_mode(s_OperServ, c->name, "-h %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); @@ -1688,8 +1638,8 @@ static int do_clearmodes(User * u) } /* Clear modes */ - send_cmd(s_OperServ, "MODE %s %s %s", c->name, MODESTOREMOVE, - c->key ? c->key : ""); + send_mode(s_OperServ, c->name, "%s %s", MODESTOREMOVE, + c->key ? c->key : ""); argv[0] = sstrdup(MODESTOREMOVE); argv[1] = c->key ? c->key : NULL; chan_set_modes(s_OperServ, c, c->key ? 2 : 1, argv, 0); @@ -1705,7 +1655,7 @@ static int do_clearmodes(User * u) for (i = 0; i < count; i++) { argv[0] = sstrdup("-b"); argv[1] = bans[i]; - send_cmd(s_OperServ, "MODE %s -b %s", c->name, argv[1]); + send_mode(s_OperServ, c->name, "-b %s", argv[1]); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[1]); free(argv[0]); @@ -1724,7 +1674,7 @@ static int do_clearmodes(User * u) for (i = 0; i < exceptcount; i++) { argv[0] = sstrdup("-e"); argv[1] = excepts[i]; - send_cmd(s_OperServ, "MODE %s -e %s", c->name, argv[1]); + send_mode(s_OperServ, c->name, "-e %s", argv[1]); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[1]); free(argv[0]); @@ -4448,8 +4398,8 @@ static int do_noop(User * u) /* Kill all the IRCops of the server */ for (u2 = firstuser(); u2; u2 = u3) { u3 = nextuser(); - if ((u2) && is_oper(u2) && (u2->server) - && !stricmp(u2->server, server)) { + if ((u2) && is_oper(u2) && (u2->server->name) + && !stricmp(u2->server->name, server)) { kill_user(s_OperServ, u2->nick, reason); } } @@ -4486,6 +4436,7 @@ static int do_jupe(User * u) #else send_cmd(NULL, "SERVER %s 2 :%s", jserver, rbuf); #endif + new_server(me_server, jserver, rbuf, SERVER_JUPED); if (WallOSJupe) wallops(s_OperServ, "\2%s\2 used JUPE on \2%s\2", u->nick, |