From: Kevin L. Mitchell Date: Fri, 28 Apr 2000 15:04:59 +0000 (+0000) Subject: Author: Kev X-Git-Url: http://git.pk910.de/?a=commitdiff_plain;h=36ab1bb01f9a0f5f630f3098b1afdc5ccc937fa6;p=ircu2.10.12-pk.git Author: Kev Log message: Lots more conversions Status: Unstable, needs testing Testing required: Pretty much everything now needs to be rigorously tested; compile warnings/ errors have at least been fixed, though. More to do on this project... git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@210 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index 916813c..31c50da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,95 @@ +2000-04-28 Kevin L. Mitchell + + * ircd/send.c: hack to support doing wallchops... + + * ircd/m_whowas.c: convert to new send functions + + * ircd/m_whois.c: convert to new send functions + + * ircd/m_who.c: convert to new send functions + + * ircd/m_wallops.c: convert to new send functions + + * ircd/m_wallchops.c: convert to new send functions + + * ircd/m_version.c: convert to new send functions + + * ircd/m_userip.c: convert to new send functions + + * ircd/m_userhost.c: convert to new send functions + + * ircd/m_uping.c: convert to new send functions + + * ircd/m_trace.c: convert to new send functions + + * ircd/m_topic.c: convert to new send functions + + * ircd/m_time.c: convert to new send functions + + * ircd/m_squit.c: convert to new send functions + + * ircd/m_silence.c: convert to new send functions + + * ircd/m_settime.c: convert to new send functions + + * ircd/m_restart.c: convert to new send functions + + * ircd/m_rehash.c: convert to new send functions + + * ircd/m_privmsg.c: convert to new send functions + + * ircd/m_pong.c: convert to new send functions + + * ircd/m_ping.c: convert to new send functions + + * ircd/m_pass.c: convert to new send functions + + * ircd/m_opmode.c: convert to new send functions + + * ircd/m_oper.c: convert to new send functions + + * ircd/m_notice.c: convert to new send functions + + * ircd/m_nick.c: convert to new send functions + + * ircd/m_names.c: convert to new send functions + + * ircd/m_motd.c: convert to new send functions + + * ircd/m_mode.c: convert to new send functions + + * ircd/m_map.c: convert to new send functions + + * ircd/m_lusers.c: convert to new send functions + + * ircd/m_list.c: convert to new send functions + + * ircd/m_links.c: convert to new send functions + + * ircd/m_kill.c: convert to new send functions + + * ircd/m_jupe.c: convert to new send functions + + * ircd/m_invite.c: convert to new send functions + + * ircd/m_info.c: convert to new send functions + + * ircd/m_help.c: convert to new send functions + + * ircd/m_gline.c: convert to new send functions + + * ircd/m_error.c: convert to new send functions + + * ircd/m_endburst.c: convert to new send functions + + * ircd/m_die.c: convert to new send functions + + * ircd/m_destruct.c: convert to new send functions + + * ircd/m_defaults.c: convert to new send functions + + * ircd/m_connect.c: convert to new send functions + 2000-04-28 Perry Lorier * RELEASE.NOTES: Describe a few more undocumented features. * config/config-sh.in: change the default paths for logging @@ -6,6 +98,23 @@ 2000-04-27 Kevin L. Mitchell + * ircd/m_close.c: convert to send_reply + + * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone + + * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone + + * ircd/m_admin.c: convert to send_reply and hunt_server_cmd + + * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement + that takes cmd and tok arguments, etc. NOTE: THIS IMPLEMENTATION + HAS A MAJOR HACK!!! The whole hunt_server architecture should be + carefully rethought... + + * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd + + * include/s_user.h: hunt_server_cmd -- replacement for hunt_server + * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by numeric nick; therefore, we have to use the server name @@ -37,7 +146,6 @@ conversions; use ircd_snprintf in a couple of cases to negate the possibility of buffer overflow ->>>>>>> 1.106 2000-04-26 Kevin L. Mitchell * ircd/channel.c: convert as much as possible to new send @@ -834,7 +942,7 @@ # # ChangeLog for ircu2.10.11 # -# $Id: ChangeLog,v 1.107 2000-04-27 23:05:41 isomer Exp $ +# $Id: ChangeLog,v 1.108 2000-04-28 15:04:58 kev Exp $ # # Insert new changes at beginning of the change list. # diff --git a/include/s_user.h b/include/s_user.h index dd6c620..03d3a39 100644 --- a/include/s_user.h +++ b/include/s_user.h @@ -75,6 +75,10 @@ extern int set_user_mode(struct Client *cptr, struct Client *sptr, extern int is_silenced(struct Client *sptr, struct Client *acptr); extern int hunt_server(int, struct Client *cptr, struct Client *sptr, char *command, int server, int parc, char *parv[]); +extern int hunt_server_cmd(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + int MustBeOper, const char *pattern, int server, + int parc, char *parv[]); extern struct Client* next_client(struct Client* next, const char* ch); extern char *umode_str(struct Client *cptr); extern void send_umode(struct Client *cptr, struct Client *sptr, int old, int sendmask); diff --git a/ircd/m_admin.c b/ircd/m_admin.c index 2591259..adde000 100644 --- a/ircd/m_admin.c +++ b/ircd/m_admin.c @@ -111,10 +111,11 @@ int m_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc > 1) { struct Client *acptr; if (!(acptr = find_match_server(parv[1]))) - return send_error_to_client(sptr, ERR_NOSUCHSERVER, parv[1]); + return send_reply(sptr, ERR_NOSUCHSERVER, parv[1]); parv[1] = acptr->name; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_ADMIN " :%s", 1, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_ADMIN, cptr, 0, ":%C", 1, parc, parv) != + HUNTED_ISME) return 0; } return send_admin_info(sptr, find_admin()); @@ -134,7 +135,8 @@ int ms_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc < 2) return 0; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_ADMIN " :%s", 1, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_ADMIN, cptr, 0, ":%C", 1, parc, parv) != + HUNTED_ISME) return 0; return send_admin_info(sptr, find_admin()); diff --git a/ircd/m_away.c b/ircd/m_away.c index 2ccd5f9..db726ff 100644 --- a/ircd/m_away.c +++ b/ircd/m_away.c @@ -114,12 +114,12 @@ int m_away(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(cptr == sptr); if (user_set_away(sptr->user, away_message)) { - sendto_serv_butone(cptr, "%s%s " TOK_AWAY " :%s", NumNick(sptr), away_message); - sendto_one(sptr, rpl_str(RPL_NOWAWAY), me.name, parv[0]); + sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ":%s", away_message); + send_reply(sptr, RPL_NOWAWAY); } else { - sendto_serv_butone(cptr, "%s%s " TOK_AWAY, NumNick(sptr)); - sendto_one(sptr, rpl_str(RPL_UNAWAY), me.name, parv[0]); + sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ""); + send_reply(sptr, RPL_UNAWAY); } return 0; } @@ -144,9 +144,9 @@ int ms_away(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return 0; if (user_set_away(sptr->user, away_message)) - sendto_serv_butone(cptr, "%s%s " TOK_AWAY " :%s", NumNick(sptr), away_message); + sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ":%s", away_message); else - sendto_serv_butone(cptr, "%s%s " TOK_AWAY, NumNick(sptr)); + sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ""); return 0; } diff --git a/ircd/m_clearmode.c b/ircd/m_clearmode.c index aeb2e9e..a2946e0 100644 --- a/ircd/m_clearmode.c +++ b/ircd/m_clearmode.c @@ -238,24 +238,14 @@ do_clearmode(struct Client *cptr, struct Client *sptr, struct Channel *chptr, control_buf[control_buf_i] = '\0'; #ifdef OPATH - if (IsServer(sptr)) - write_log(OPATH, TIME_T_FMT " %s CLEARMODE %s %s\n", TStime(), sptr->name, - chptr->chname, control_buf); - else - write_log(OPATH, TIME_T_FMT " %s!%s@%s CLEARMODE %s %s\n", TStime(), - sptr->name, sptr->user->username, sptr->user->host, - chptr->chname, control_buf); + write_log(OPATH, "%Tu %#C CLEARMODE %H %s\n", TStime(), sptr, chptr, + control_buf); #endif /* Then send it */ - if (!IsLocalChannel(chptr->chname)) { - if (IsServer(sptr)) - sendto_serv_butone(cptr, "%s " TOK_CLEARMODE " %s %s", NumServ(sptr), - chptr->chname, control_buf); - else - sendto_serv_butone(cptr, "%s%s " TOK_CLEARMODE " %s %s", NumNick(sptr), - chptr->chname, control_buf); - } + if (!IsLocalChannel(chptr->chname)) + sendcmdto_serv_butone(sptr, CMD_CLEARMODE, cptr, "%H %s", chptr, + control_buf); return 0; } @@ -276,11 +266,11 @@ ms_clearmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return need_more_params(sptr, "CLEARMODE"); if (!IsPrivileged(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); if (!IsChannelName(parv[1]) || IsLocalChannel(parv[1]) || !(chptr = FindChannel(parv[1]))) - return send_error_to_client(sptr, ERR_NOSUCHCHANNEL, parv[1]); + return send_reply(sptr, ERR_NOSUCHCHANNEL, parv[1]); return do_clearmode(cptr, sptr, chptr, parv[2]); } @@ -296,7 +286,7 @@ int mo_clearmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { #ifndef CONFIG_OPERCMDS - return send_error_to_client(sptr, ERR_DISABLED, "CLEARMODE"); + return send_reply(sptr, ERR_DISABLED, "CLEARMODE"); #else struct Channel *chptr; char *control = "ovpsmikbl"; /* default control string */ @@ -310,10 +300,10 @@ mo_clearmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) clean_channelname(parv[1]); if (!IsOper(sptr) && !IsLocalChannel(parv[1])) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); if (!IsChannelName(parv[1]) || !(chptr = FindChannel(parv[1]))) - return send_error_to_client(sptr, ERR_NOSUCHCHANNEL, parv[1]); + return send_reply(sptr, ERR_NOSUCHCHANNEL, parv[1]); return do_clearmode(cptr, sptr, chptr, control); #endif /* CONFIG_OPERCMDS */ diff --git a/ircd/m_close.c b/ircd/m_close.c index 3fd7dd8..5337639 100644 --- a/ircd/m_close.c +++ b/ircd/m_close.c @@ -106,9 +106,6 @@ int mo_close(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(cptr == sptr); assert(IsAnOper(sptr)); - sendto_one(sptr, rpl_str(RPL_CLOSEEND), me.name, parv[0], - net_close_unregistered_connections(sptr)); - return 0; + return send_reply(sptr, RPL_CLOSEEND, + net_close_unregistered_connections(sptr)); } - - diff --git a/ircd/m_connect.c b/ircd/m_connect.c index efcd2e4..72edaaa 100644 --- a/ircd/m_connect.c +++ b/ircd/m_connect.c @@ -129,7 +129,7 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(0 != sptr); if (!IsPrivileged(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); if (parc < 4) { /* @@ -140,8 +140,8 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return need_more_params(sptr, "CONNECT"); } - if (hunt_server(1, cptr, sptr, - "%s%s " TOK_CONNECT " %s %s :%s", 3, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_CONNECT, cptr, 1, "%s %s :%C", 3, parc, parv) + != HUNTED_ISME) return 0; /* @@ -150,17 +150,16 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * present below. --Bleep */ if (0 == (aconf = conf_find_server(parv[1]))) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Host %s not listed in ircd.conf", - NumServ(&me), NumNick(sptr), parv[1]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Host %s not listed " + "in ircd.conf", sptr, parv[1]); return 0; } /* * use aconf->name to look up the server */ if ((acptr = FindServer(aconf->name))) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s %s %s.", - NumServ(&me), NumNick(sptr), parv[1], "already exists from", - acptr->from->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Server %s already " + "exists from %s", sptr, parv[1], acptr->from->name); return 0; } /* @@ -170,17 +169,16 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * lines (CRULEALL) not d lines (CRULEAUTO). */ if ((crule_name = conf_eval_crule(aconf))) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Disallowed by rule: %s", - NumServ(&me), NumNick(sptr), crule_name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Disallowed by rule: %s", + sptr, crule_name); return 0; } /* * Check to see if the server is juped; if it is, disallow the connect */ if ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe)) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s is juped: %s", - NumServ(&me), NumNick(sptr), JupeServer(ajupe), - JupeReason(ajupe)); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Server %s is juped: %s", + sptr, JupeServer(ajupe), JupeReason(ajupe)); return 0; } /* @@ -188,8 +186,8 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * server. */ if ((port = atoi(parv[2])) == 0) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Invalid port number", - NumServ(&me), NumNick(sptr)); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Invalid port number", + sptr); return 0; } /* @@ -200,18 +198,20 @@ int ms_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* * Notify all operators about remote connect requests */ - sendto_ops_butone(0, &me, ":%s WALLOPS :Remote CONNECT %s %s from %s", - me.name, parv[1], parv[2] ? parv[2] : "", - get_client_name(sptr, HIDE_IP)); - ircd_log(L_INFO, "CONNECT From %s : %s %d", parv[0], parv[1], parv[2] ? parv[2] : ""); + sendcmdto_flag_butone(&me, CMD_WALLOPS, 0, FLAGS_WALLOP, + ":Remote CONNECT %s %s from %s", parv[1], + parv[2] ? parv[2] : "", + get_client_name(sptr, HIDE_IP)); + ircd_log(L_INFO, "CONNECT From %s : %s %d", parv[0], parv[1], + parv[2] ? parv[2] : ""); if (connect_server(aconf, sptr, 0)) { - sendto_one(sptr, "%s NOTICE %s%s :*** Connecting to %s.", - NumServ(&me), NumNick(sptr), aconf->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connecting to %s.", sptr, + aconf->name); } else { - sendto_one(sptr, "%s NOTICE %s%s :*** Connection to %s failed", - NumServ(&me), NumNick(sptr), aconf->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connection to %s failed", + sptr, aconf->name); } aconf->port = tmpport; return 0; @@ -258,7 +258,7 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) struct Client* acptr3; if (!(acptr3 = find_match_server(parv[3]))) { - send_error_to_client(sptr, ERR_NOSUCHSERVER, parv[3]); + send_reply(sptr, ERR_NOSUCHSERVER, parv[3]); return 0; } @@ -271,8 +271,8 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) acptr3 = acptr2; } parv[3] = acptr3->name; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_CONNECT " %s %s :%s", - 3, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_CONNECT, cptr, 1, "%s %s :%C", 3, parc, + parv) != HUNTED_ISME) return 0; } } @@ -282,18 +282,16 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * present below. --Bleep */ if (0 == (aconf = conf_find_server(parv[1]))) { - sendto_one(sptr, - ":%s NOTICE %s :Connect: Host %s not listed in ircd.conf", - me.name, parv[0], parv[1]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Host %s not listed " + "in ircd.conf", sptr, parv[1]); return 0; } /* * use aconf->name to look up the server, see above */ if ((acptr = FindServer(aconf->name))) { - sendto_one(sptr, ":%s NOTICE %s :Connect: Server %s %s %s.", - me.name, parv[0], parv[1], "already exists from", - acptr->from->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Server %s already " + "exists from %s", sptr, parv[1], acptr->from->name); return 0; } /* @@ -303,16 +301,16 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * lines (CRULEALL) not d lines (CRULEAUTO). */ if ((crule_name = conf_eval_crule(aconf))) { - sendto_one(sptr, ":%s NOTICE %s :Connect: Disallowed by rule: %s", - me.name, parv[0], crule_name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Disallowed by rule: %s", + sptr, crule_name); return 0; } /* * Check to see if the server is juped; if it is, disallow the connect */ if ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe)) { - sendto_one(sptr, ":%s NOTICE %s%s :Connect: Server %s is juped: %s", - me.name, NumNick(sptr), JupeServer(ajupe), JupeReason(ajupe)); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Server %s is juped: %s", + sptr, JupeServer(ajupe), JupeReason(ajupe)); return 0; } /* @@ -324,14 +322,14 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc > 2) { assert(0 != parv[2]); if (0 == (port = atoi(parv[2]))) { - sendto_one(sptr, ":%s NOTICE %s :Connect: Invalid port number", - me.name, parv[0]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: Invalid port number", + sptr); return 0; } } if (0 == port && 0 == (port = SERVER_PORT)) { - sendto_one(sptr, ":%s NOTICE %s :Connect: missing port number", - me.name, parv[0]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Connect: missing port number", + sptr); return 0; } @@ -339,12 +337,12 @@ int mo_connect(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) aconf->port = port; if (connect_server(aconf, sptr, 0)) { - sendto_one(sptr, ":%s NOTICE %s :*** Connecting to %s.", - me.name, parv[0], aconf->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connecting to %s.", sptr, + aconf->name); } else { - sendto_one(sptr, ":%s NOTICE %s :*** Connection to %s failed", - me.name, parv[0], aconf->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connection to %s failed", + sptr, aconf->name); } aconf->port = tmpport; return 0; @@ -372,7 +370,7 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) struct Jupe* ajupe; if (!IsPrivileged(sptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return -1; } @@ -383,7 +381,7 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) struct Client* acptr2; struct Client* acptr3; if (!(acptr3 = find_match_server(parv[3]))) { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[3]); + sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[3]); /* XXX DEAD */ return 0; } @@ -395,7 +393,7 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) parv[3] = acptr3->name; } - if (hunt_server(1, cptr, sptr, + if (hunt_server(1, cptr, sptr, /* XXX DEAD */ "%s%s " TOK_CONNECT " %s %s :%s", 3, parc, parv) != HUNTED_ISME) return 0; @@ -408,10 +406,10 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if ((acptr = FindServer(parv[1]))) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :Connect: Server %s %s %s.", + sendto_one(sptr, ":%s NOTICE %s :Connect: Server %s %s %s.", /* XXX DEAD */ me.name, parv[0], parv[1], "already exists from", acptr->from->name); else - sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s %s %s.", + sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s %s %s.", /* XXX DEAD */ NumServ(&me), NumNick(sptr), parv[1], "already exists from", acptr->from->name); return 0; @@ -434,10 +432,10 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif if (!aconf) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :Connect: Host %s not listed in ircd.conf", + sendto_one(sptr, ":%s NOTICE %s :Connect: Host %s not listed in ircd.conf", /* XXX DEAD */ me.name, parv[0], parv[1]); else - sendto_one(sptr, "%s NOTICE %s%s :Connect: Host %s not listed in ircd.conf", + sendto_one(sptr, "%s NOTICE %s%s :Connect: Host %s not listed in ircd.conf", /* XXX DEAD */ NumServ(&me), NumNick(sptr), parv[1]); return 0; } @@ -450,19 +448,19 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc > 2 && !BadPtr(parv[2])) { if ((port = atoi(parv[2])) == 0) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :Connect: Invalid port number", me.name, parv[0]); + sendto_one(sptr, ":%s NOTICE %s :Connect: Invalid port number", me.name, parv[0]); /* XXX DEAD */ else - sendto_one(sptr, "%s NOTICE %s%s :Connect: Invalid port number", + sendto_one(sptr, "%s NOTICE %s%s :Connect: Invalid port number", /* XXX DEAD */ NumServ(&me), NumNick(sptr)); return 0; } } else if (port == 0 && (port = PORTNUM) == 0) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :Connect: missing port number", + sendto_one(sptr, ":%s NOTICE %s :Connect: missing port number", /* XXX DEAD */ me.name, parv[0]); else - sendto_one(sptr, "%s NOTICE %s%s :Connect: missing port number", + sendto_one(sptr, "%s NOTICE %s%s :Connect: missing port number", /* XXX DEAD */ NumServ(&me), NumNick(sptr)); return 0; } @@ -478,10 +476,10 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) (0 == match(cconf->host, aconf->name))) { if (crule_eval(cconf->passwd)) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :Connect: Disallowed by rule: %s", + sendto_one(sptr, ":%s NOTICE %s :Connect: Disallowed by rule: %s", /* XXX DEAD */ me.name, parv[0], cconf->name); else - sendto_one(sptr, "%s NOTICE %s%s :Connect: Disallowed by rule: %s", + sendto_one(sptr, "%s NOTICE %s%s :Connect: Disallowed by rule: %s", /* XXX DEAD */ NumServ(&me), NumNick(sptr), cconf->name); return 0; } @@ -491,7 +489,7 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * Check to see if the server is juped; if it is, disallow the connect */ if ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe)) { - sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s is juped: %s", + sendto_one(sptr, "%s NOTICE %s%s :Connect: Server %s is juped: %s", /* XXX DEAD */ NumServ(&me), NumNick(sptr), JupeServer(ajupe), JupeReason(ajupe)); return 0; @@ -501,7 +499,7 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * Notify all operators about remote connect requests */ if (!IsAnOper(cptr)) { - sendto_ops_butone(0, &me, ":%s WALLOPS :Remote CONNECT %s %s from %s", + sendto_ops_butone(0, &me, ":%s WALLOPS :Remote CONNECT %s %s from %s", /* XXX DEAD */ me.name, parv[1], parv[2] ? parv[2] : "", get_client_name(sptr, HIDE_IP)); ircd_log(L_INFO, "CONNECT From %s : %s %d", @@ -510,18 +508,18 @@ int m_connect(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) aconf->port = port; if (connect_server(aconf, sptr, 0)) { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :*** Connecting to %s.", + sendto_one(sptr, ":%s NOTICE %s :*** Connecting to %s.", /* XXX DEAD */ me.name, parv[0], aconf->name); else - sendto_one(sptr, "%s NOTICE %s%s :*** Connecting to %s.", + sendto_one(sptr, "%s NOTICE %s%s :*** Connecting to %s.", /* XXX DEAD */ NumServ(&me), NumNick(sptr), aconf->name); } else { if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :*** Connection to %s failed", + sendto_one(sptr, ":%s NOTICE %s :*** Connection to %s failed", /* XXX DEAD */ me.name, parv[0], aconf->name); else - sendto_one(sptr, "%s NOTICE %s%s :*** Connection to %s failed", + sendto_one(sptr, "%s NOTICE %s%s :*** Connection to %s failed", /* XXX DEAD */ NumServ(&me), NumNick(sptr), aconf->name); } aconf->port = tmpport; diff --git a/ircd/m_defaults.c b/ircd/m_defaults.c index 67fcc1b..4404cc1 100644 --- a/ircd/m_defaults.c +++ b/ircd/m_defaults.c @@ -100,19 +100,19 @@ int m_not_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { - return send_error_to_client(cptr, ERR_NOPRIVILEGES); + return send_reply(cptr, ERR_NOPRIVILEGES); } int m_unregistered(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { - sendto_one(cptr, ":%s %d * %s :Register first.", - me.name, ERR_NOTREGISTERED, parv[0]); + send_reply(cptr, RPL_EXPLICIT | ERR_NOTREGISTERED, "%s :Register first.", + parv[0]); return 0; } int m_registered(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { - return send_error_to_client(sptr, ERR_ALREADYREGISTRED); + return send_reply(sptr, ERR_ALREADYREGISTRED); } int m_ignore(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) @@ -123,8 +123,8 @@ int m_ignore(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int m_unsupported(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { #if 0 - sendto_one(cptr, ":%s %d * %s :Unsupported command", - me.name, ERR_UNSUPPORTED, parv[0]); + send_reply(cptr, RPL_EXPLICIT | ERR_UNSUPPORTED, "%s :Unsupported command", + parv[0]); #endif return 0; } diff --git a/ircd/m_destruct.c b/ircd/m_destruct.c index fabc93e..c26aeaf 100644 --- a/ircd/m_destruct.c +++ b/ircd/m_destruct.c @@ -133,8 +133,7 @@ int ms_destruct(struct Client* cptr, struct Client* sptr, int parc, char* parv[] chanTS = atoi(parv[2]); /* Pass on DESTRUCT message */ - sendto_highprot_butone(cptr, 10, "%s " TOK_DESTRUCT " %s " TIME_T_FMT, - NumServ(sptr), parv[1], chanTS); + sendcmdto_serv_butone(sptr, CMD_DESTRUCT, cptr, "%s %Tu", parv[1], chanTS); return 0; } @@ -176,7 +175,7 @@ int m_destruct(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) chanTS = atoi(parv[2]); /* Pass on DESTRUCT message */ - sendto_highprot_butone(cptr, 10, "%s DESTRUCT %s " TIME_T_FMT, + sendto_highprot_butone(cptr, 10, "%s DESTRUCT %s " TIME_T_FMT, /* XXX DEAD */ NumServ(sptr), parv[1], chanTS); return 0; diff --git a/ircd/m_die.c b/ircd/m_die.c index 0459243..2288130 100644 --- a/ircd/m_die.c +++ b/ircd/m_die.c @@ -91,6 +91,7 @@ #include "ircd.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "msg.h" #include "numeric.h" #include "numnicks.h" #include "s_bsd.h" @@ -118,8 +119,7 @@ int mo_die(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif #endif { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); - return 0; + return send_reply(sptr, ERR_NOPRIVILEGES); } for (i = 0; i <= HighestFd; i++) @@ -127,11 +127,11 @@ int mo_die(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(acptr = LocalClientArray[i])) continue; if (IsUser(acptr)) - sendto_one(acptr, ":%s NOTICE %s :Server Terminating. %s", - me.name, acptr->name, get_client_name(sptr, HIDE_IP)); + sendcmdto_one(&me, CMD_NOTICE, acptr, "%C :Server Terminating. %s", + acptr, get_client_name(sptr, HIDE_IP)); else if (IsServer(acptr)) - sendto_one(acptr, ":%s ERROR :Terminated by %s", - me.name, get_client_name(sptr, HIDE_IP)); + sendcmdto_one(&me, CMD_ERROR, acptr, ":Terminated by %s", + get_client_name(sptr, HIDE_IP)); } server_die("received DIE"); #endif /* defined(OPER_DIE) || defined(LOCOP_DIE) */ @@ -159,7 +159,7 @@ int m_die(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif #endif { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } @@ -168,10 +168,10 @@ int m_die(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!(acptr = LocalClientArray[i])) continue; if (IsUser(acptr)) - sendto_one(acptr, ":%s NOTICE %s :Server Terminating. %s", + sendto_one(acptr, ":%s NOTICE %s :Server Terminating. %s", /* XXX DEAD */ me.name, acptr->name, get_client_name(sptr, HIDE_IP)); else if (IsServer(acptr)) - sendto_one(acptr, ":%s ERROR :Terminated by %s", + sendto_one(acptr, ":%s ERROR :Terminated by %s", /* XXX DEAD */ me.name, get_client_name(sptr, HIDE_IP)); } server_die("received DIE"); diff --git a/ircd/m_endburst.c b/ircd/m_endburst.c index 2426145..605a45c 100644 --- a/ircd/m_endburst.c +++ b/ircd/m_endburst.c @@ -92,6 +92,7 @@ #include "ircd.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "msg.h" #include "numeric.h" #include "numnicks.h" #include "send.h" @@ -115,12 +116,12 @@ int ms_end_of_burst(struct Client* cptr, struct Client* sptr, int parc, char* pa if (!IsServer(sptr)) return 0; - sendto_op_mask(SNO_NETWORK, "Completed net.burst from %s.", sptr->name); - sendto_serv_butone(cptr, "%s EB", NumServ(sptr)); + sendto_opmask_butone(0, SNO_NETWORK, "Completed net.burst from %C.", sptr); + sendcmdto_serv_butone(sptr, CMD_END_OF_BURST, cptr, ""); ClearBurst(sptr); SetBurstAck(sptr); if (MyConnect(sptr)) - sendto_one(sptr, "%s EA", NumServ(&me)); + sendcmdto_one(&me, CMD_END_OF_BURST_ACK, sptr, ""); return 0; } @@ -138,8 +139,9 @@ int ms_end_of_burst_ack(struct Client *cptr, struct Client *sptr, int parc, char if (!IsServer(sptr)) return 0; - sendto_op_mask(SNO_NETWORK, "%s acknowledged end of net.burst.", sptr->name); - sendto_serv_butone(cptr, "%s EA", NumServ(sptr)); + sendto_opmask_butone(0, SNO_NETWORK, "%C acknowledged end of net.burst.", + sptr); + sendcmdto_serv_butone(sptr, CMD_END_OF_BURST_ACK, cptr, ""); ClearBurstAck(sptr); return 0; @@ -161,12 +163,12 @@ int m_end_of_burst(struct Client *cptr, struct Client *sptr, int parc, char **pa if (!IsServer(sptr)) return 0; - sendto_op_mask(SNO_NETWORK, "Completed net.burst from %s.", sptr->name); - sendto_serv_butone(cptr, "%s EB", NumServ(sptr)); + sendto_op_mask(SNO_NETWORK, "Completed net.burst from %s.", sptr->name); /* XXX DEAD */ + sendto_serv_butone(cptr, "%s EB", NumServ(sptr)); /* XXX DEAD */ ClearBurst(sptr); SetBurstAck(sptr); if (MyConnect(sptr)) - sendto_one(sptr, "%s EA", NumServ(&me)); + sendto_one(sptr, "%s EA", NumServ(&me)); /* XXX DEAD */ return 0; } @@ -183,8 +185,8 @@ int m_end_of_burst_ack(struct Client *cptr, struct Client *sptr, int parc, char if (!IsServer(sptr)) return 0; - sendto_op_mask(SNO_NETWORK, "%s acknowledged end of net.burst.", sptr->name); - sendto_serv_butone(cptr, "%s EA", NumServ(sptr)); + sendto_op_mask(SNO_NETWORK, "%s acknowledged end of net.burst.", sptr->name); /* XXX DEAD */ + sendto_serv_butone(cptr, "%s EA", NumServ(sptr)); /* XXX DEAD */ ClearBurstAck(sptr); return 0; diff --git a/ircd/m_error.c b/ircd/m_error.c index 85e6bef..342a4cd 100644 --- a/ircd/m_error.c +++ b/ircd/m_error.c @@ -126,9 +126,10 @@ int ms_error(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return exit_client_msg(cptr, cptr, &me, "Register first"); if (cptr == sptr) - sendto_ops("ERROR :from %s -- %s", cptr->name, para); + sendto_opmask_butone(0, SNO_OLDSNO, "ERROR :from %C -- %s", cptr, para); else - sendto_ops("ERROR :from %s via %s -- %s", sptr->name, cptr->name, para); + sendto_opmask_butone(0, SNO_OLDSNO, "ERROR :from %C via %C -- %s", sptr, + cptr, para); if (sptr->serv) { @@ -164,9 +165,10 @@ int mr_error(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return exit_client_msg(cptr, cptr, &me, "Register first"); if (cptr == sptr) - sendto_ops("ERROR :from %s -- %s", cptr->name, para); + sendto_opmask_butone(0, SNO_OLDSNO, "ERROR :from %C -- %s", cptr, para); else - sendto_ops("ERROR :from %s via %s -- %s", sptr->name, cptr->name, para); + sendto_opmask_butone(0, SNO_OLDSNO, "ERROR :from %C via %C -- %s", sptr, + cptr, para); if (sptr->serv) { @@ -203,9 +205,9 @@ int m_error(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) return exit_client_msg(cptr, cptr, &me, "Register first"); if (cptr == sptr) - sendto_ops("ERROR :from %s -- %s", cptr->name, para); + sendto_ops("ERROR :from %s -- %s", cptr->name, para); /* XXX DEAD */ else - sendto_ops("ERROR :from %s via %s -- %s", sptr->name, cptr->name, para); + sendto_ops("ERROR :from %s via %s -- %s", sptr->name, cptr->name, para); /* XXX DEAD */ if (sptr->serv) { diff --git a/ircd/m_gline.c b/ircd/m_gline.c index a63331a..2587c5a 100644 --- a/ircd/m_gline.c +++ b/ircd/m_gline.c @@ -151,10 +151,10 @@ ms_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!IsMe(acptr)) { /* manually propagate */ if (!lastmod) - sendcmdto_one(sptr, CMD_GLINE, acptr, "%s %s %s :%s", target, mask, + sendcmdto_one(sptr, CMD_GLINE, acptr, "%C %s %s :%s", acptr, mask, parv[3], reason); else - sendcmdto_one(sptr, CMD_GLINE, acptr, "%s %s %s %s :%s", target, mask, + sendcmdto_one(sptr, CMD_GLINE, acptr, "%C %s %s %s :%s", acptr, mask, parv[3], parv[4], reason); return 0; @@ -231,10 +231,8 @@ mo_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) return gline_list(sptr, mask); #ifndef LOCOP_LGLINE - if (!IsOper(sptr)) { - send_error_to_client(sptr, ERR_NOPRIVILEGES); - return 0; - } + if (!IsOper(sptr)) + return send_reply(sptr, ERR_NOPRIVILEGES); #endif if (parc == 4) { @@ -251,14 +249,14 @@ mo_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (target) { if (!(target[0] == '*' && target[1] == '\0')) { if (!(acptr = find_match_server(target))) - return send_error_to_client(sptr, ERR_NOSUCHSERVER, target); + return send_reply(sptr, ERR_NOSUCHSERVER, target); if (!IsMe(acptr)) { /* manually propagate, since we don't set it */ #ifndef CONFIG_OPERCMDS - return send_error_to_client(sptr, ERR_DISABLED, "GLINE"); + return send_reply(sptr, ERR_DISABLED, "GLINE"); #else if (!IsOper(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); sendcmdto_one(sptr, CMD_GLINE, acptr, "%C %c%s %s %Tu :%s", acptr, flags & GLINE_ACTIVE ? '?' : '-', mask, parv[3], @@ -269,12 +267,12 @@ mo_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) flags |= GLINE_LOCAL; } else if (!IsOper(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); } #ifndef CONFIG_OPERCMDS if (!(flags & GLINE_LOCAL)) - return send_error_to_client(sptr, ERR_DISABLED, "GLINE"); + return send_reply(sptr, ERR_DISABLED, "GLINE"); #endif /* CONFIG_OPERCMDS */ agline = gline_find(mask, GLINE_ANY | GLINE_EXACT); @@ -306,7 +304,7 @@ int m_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { if (parc < 2) - return send_error_to_client(sptr, ERR_NOSUCHGLINE, ""); + return send_reply(sptr, ERR_NOSUCHGLINE, ""); return gline_list(sptr, parv[1]); } diff --git a/ircd/m_help.c b/ircd/m_help.c index 460c1ca..36d53eb 100644 --- a/ircd/m_help.c +++ b/ircd/m_help.c @@ -107,7 +107,7 @@ int m_help(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int i; for (i = 0; msgtab[i].cmd; i++) - sendto_one(sptr, ":%s NOTICE %s :%s", me.name, parv[0], msgtab[i].cmd); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :%s", sptr, msgtab[i].cmd); return 0; } @@ -123,7 +123,7 @@ int m_help(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) int i; for (i = 0; msgtab[i].cmd; i++) - sendto_one(sptr, ":%s NOTICE %s :%s", me.name, parv[0], msgtab[i].cmd); + sendto_one(sptr, ":%s NOTICE %s :%s", me.name, parv[0], msgtab[i].cmd); /* XXX DEAD */ return 0; } #endif /* 0 */ diff --git a/ircd/m_info.c b/ircd/m_info.c index f06d0bb..d1c28c9 100644 --- a/ircd/m_info.c +++ b/ircd/m_info.c @@ -111,25 +111,26 @@ int m_info(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { const char **text = infotext; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_INFO " :%s", 1, parc, parv) == HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_INFO, cptr, 1, ":%C", 1, parc, parv) == + HUNTED_ISME) { while (text[2]) { if (!IsOper(sptr)) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text); + send_reply(sptr, RPL_INFO, *text); text++; } if (IsOper(sptr)) { while (*text) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text++); - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], ""); + send_reply(sptr, RPL_INFO, *text++); + send_reply(sptr, RPL_INFO, ""); } - sendto_one(sptr, ":%s %d %s :Birth Date: %s, compile # %s", - me.name, RPL_INFO, parv[0], creation, generation); - sendto_one(sptr, ":%s %d %s :On-line since %s", - me.name, RPL_INFO, parv[0], myctime(me.firsttime)); - sendto_one(sptr, rpl_str(RPL_ENDOFINFO), me.name, parv[0]); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":Birth Date: %s, compile # %s", + creation, generation); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":On-line since %s", + myctime(me.firsttime)); + send_reply(sptr, RPL_ENDOFINFO); } return 0; } @@ -147,25 +148,26 @@ int ms_info(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (IsServer(sptr)) return 0; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_INFO " :%s", 1, parc, parv) == HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_INFO, cptr, 1, ":%C", 1, parc, parv) == + HUNTED_ISME) { while (text[2]) { if (!IsOper(sptr)) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text); + send_reply(sptr, RPL_INFO, *text); text++; } if (IsOper(sptr)) { while (*text) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text++); - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], ""); + send_reply(sptr, RPL_INFO, *text++); + send_reply(sptr, RPL_INFO, ""); } - sendto_one(sptr, ":%s %d %s :Birth Date: %s, compile # %s", - me.name, RPL_INFO, parv[0], creation, generation); - sendto_one(sptr, ":%s %d %s :On-line since %s", - me.name, RPL_INFO, parv[0], myctime(me.firsttime)); - sendto_one(sptr, rpl_str(RPL_ENDOFINFO), me.name, parv[0]); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":Birth Date: %s, compile # %s", + creation, generation); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":On-line since %s", + myctime(me.firsttime)); + send_reply(sptr, RPL_ENDOFINFO); } return 0; } @@ -180,25 +182,26 @@ int mo_info(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { const char **text = infotext; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_INFO " :%s", 1, parc, parv) == HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_INFO, cptr, 1, ":%C", 1, parc, parv) == + HUNTED_ISME) { while (text[2]) { if (!IsOper(sptr)) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text); + send_reply(sptr, RPL_INFO, *text); text++; } if (IsOper(sptr)) { while (*text) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text++); - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], ""); + send_reply(sptr, RPL_INFO, *text++); + send_reply(sptr, RPL_INFO, ""); } - sendto_one(sptr, ":%s %d %s :Birth Date: %s, compile # %s", - me.name, RPL_INFO, parv[0], creation, generation); - sendto_one(sptr, ":%s %d %s :On-line since %s", - me.name, RPL_INFO, parv[0], myctime(me.firsttime)); - sendto_one(sptr, rpl_str(RPL_ENDOFINFO), me.name, parv[0]); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":Birth Date: %s, compile # %s", + creation, generation); + send_reply(sptr, RPL_EXPLICIT | RPL_INFO, ":On-line since %s", + myctime(me.firsttime)); + send_reply(sptr, RPL_ENDOFINFO); } return 0; } @@ -215,25 +218,25 @@ int m_info(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { const char **text = infotext; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_INFO " :%s", 1, parc, parv) == HUNTED_ISME) + if (hunt_server(1, cptr, sptr, "%s%s " TOK_INFO " :%s", 1, parc, parv) == HUNTED_ISME) /* XXX DEAD */ { while (text[2]) { if (!IsOper(sptr)) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text); + sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text); /* XXX DEAD */ text++; } if (IsOper(sptr)) { while (*text) - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text++); - sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], ""); + sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], *text++); /* XXX DEAD */ + sendto_one(sptr, rpl_str(RPL_INFO), me.name, parv[0], ""); /* XXX DEAD */ } - sendto_one(sptr, ":%s %d %s :Birth Date: %s, compile # %s", + sendto_one(sptr, ":%s %d %s :Birth Date: %s, compile # %s", /* XXX DEAD */ me.name, RPL_INFO, parv[0], creation, generation); - sendto_one(sptr, ":%s %d %s :On-line since %s", + sendto_one(sptr, ":%s %d %s :On-line since %s", /* XXX DEAD */ me.name, RPL_INFO, parv[0], myctime(me.firsttime)); - sendto_one(sptr, rpl_str(RPL_ENDOFINFO), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_ENDOFINFO), me.name, parv[0]); /* XXX DEAD */ } return 0; } diff --git a/ircd/m_invite.c b/ircd/m_invite.c index 1ee016c..e760738 100644 --- a/ircd/m_invite.c +++ b/ircd/m_invite.c @@ -130,9 +130,8 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ struct SLink *lp; for (lp = sptr->user->invited; lp; lp = lp->next) - sendto_one(cptr, rpl_str(RPL_INVITELIST), me.name, cptr->name, - lp->value.chptr->chname); - sendto_one(cptr, rpl_str(RPL_ENDOFINVITELIST), me.name, cptr->name); + send_reply(cptr, RPL_INVITELIST, lp->value.chptr->chname); + send_reply(cptr, RPL_ENDOFINVITELIST); return 0; } @@ -140,7 +139,7 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return need_more_params(sptr, "INVITE"); if (!(acptr = FindUser(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); + send_reply(sptr, ERR_NOSUCHNICK, parv[1]); return 0; } @@ -154,7 +153,7 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(chptr = FindChannel(parv[2]))) { if (IsModelessChannel(parv[2]) || IsLocalChannel(parv[2])) { - sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], parv[2]); + send_reply(sptr, ERR_NOTONCHANNEL, parv[2]); return 0; } @@ -164,38 +163,28 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (check_target_limit(sptr, acptr, acptr->name, 0)) return 0; - sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], - acptr->name, parv[2]); + send_reply(sptr, RPL_INVITING, acptr->name, parv[2]); if (acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], - acptr->name, acptr->user->away); + send_reply(sptr, RPL_AWAY, acptr->name, acptr->user->away); - if (MyUser(acptr)) - sendto_prefix_one(acptr, sptr, ":%s " MSG_INVITE " %s :%s", sptr->name, - acptr->name, parv[2]); - else - sendto_one(acptr, "%s%s " TOK_INVITE " %s :%s", NumNick(sptr), - acptr->name, parv[2]); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%C :%s", acptr, parv[2]); return 0; } if (!find_channel_member(sptr, chptr)) { - sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], - chptr->chname); + send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname); return 0; } if (find_channel_member(acptr, chptr)) { - sendto_one(sptr, err_str(ERR_USERONCHANNEL), - me.name, parv[0], acptr->name, chptr->chname); + send_reply(sptr, ERR_USERONCHANNEL, acptr->name, chptr->chname); return 0; } if (!is_chan_op(sptr, chptr)) { - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), - me.name, parv[0], chptr->chname); + send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); return 0; } @@ -204,21 +193,15 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (check_target_limit(sptr, acptr, acptr->name, 0)) return 0; - sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], - acptr->name, chptr->chname); + send_reply(sptr, RPL_INVITING, acptr->name, chptr->chname); if (acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], - acptr->name, acptr->user->away); + send_reply(sptr, RPL_AWAY, acptr->name, acptr->user->away); - if (MyConnect(acptr)) { + if (MyConnect(acptr)) add_invite(acptr, chptr); - sendto_prefix_one(acptr, sptr, ":%s " MSG_INVITE " %s :%s", - sptr->name, acptr->name, chptr->chname); - } - else - sendto_one(acptr, "%s%s " TOK_INVITE " %s :%s", - NumNick(sptr), acptr->name, chptr->chname); + + sendcmdto_one(sptr, CMD_INVITE, acptr, "%C :%H", acptr, chptr); return 0; } @@ -267,15 +250,14 @@ int ms_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return 0; } if (!(acptr = FindUser(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); + send_reply(sptr, ERR_NOSUCHNICK, parv[1]); return 0; } if (!MyUser(acptr)) { /* * just relay the message */ - sendto_one(acptr, "%s%s " TOK_INVITE " %s :%s", - NumNick(sptr), acptr->name, parv[2]); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%C :%s", acptr, parv[2]); return 0; } @@ -287,24 +269,20 @@ int ms_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * allow invites to non existant channels, bleah * avoid JOIN, INVITE, PART abuse */ - sendto_prefix_one(acptr, sptr, ":%s " MSG_INVITE " %s :%s", sptr->name, - acptr->name, parv[2]); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%C :%s", acptr, parv[2]); return 0; } if (!find_channel_member(sptr, chptr)) { - sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], - chptr->chname); + send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname); return 0; } if (find_channel_member(acptr, chptr)) { - sendto_one(sptr, err_str(ERR_USERONCHANNEL), - me.name, parv[0], acptr->name, chptr->chname); + send_reply(sptr, ERR_USERONCHANNEL, acptr->name, chptr->chname); return 0; } add_invite(acptr, chptr); - sendto_prefix_one(acptr, sptr, ":%s " MSG_INVITE " %s :%s", sptr->name, - acptr->name, chptr->chname); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%C :%H", acptr, chptr); return 0; } @@ -337,9 +315,9 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) */ struct SLink *lp; for (lp = sptr->user->invited; lp; lp = lp->next) - sendto_one(cptr, rpl_str(RPL_INVITELIST), me.name, cptr->name, + sendto_one(cptr, rpl_str(RPL_INVITELIST), me.name, cptr->name, /* XXX DEAD */ lp->value.chptr->chname); - sendto_one(cptr, rpl_str(RPL_ENDOFINVITELIST), me.name, cptr->name); + sendto_one(cptr, rpl_str(RPL_ENDOFINVITELIST), me.name, cptr->name); /* XXX DEAD */ return 0; } @@ -348,7 +326,7 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (!(acptr = FindUser(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); /* XXX DEAD */ return 0; } @@ -367,7 +345,7 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) { if (IsModelessChannel(parv[2]) || IsLocalChannel(parv[2])) { - sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], parv[2]); + sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], parv[2]); /* XXX DEAD */ return 0; } @@ -378,15 +356,15 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (check_target_limit(sptr, acptr, acptr->name, 0)) return 0; - sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], /* XXX DEAD */ acptr->name, parv[2]); if (acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], /* XXX DEAD */ acptr->name, acptr->user->away); } - sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], + sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], /* XXX DEAD */ acptr->name, parv[2]); return 0; @@ -394,14 +372,14 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (!find_channel_member(sptr, chptr)) { - sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], + sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], /* XXX DEAD */ chptr->chname); return 0; } if (find_channel_member(acptr, chptr)) { - sendto_one(sptr, err_str(ERR_USERONCHANNEL), + sendto_one(sptr, err_str(ERR_USERONCHANNEL), /* XXX DEAD */ me.name, parv[0], acptr->name, chptr->chname); return 0; } @@ -410,7 +388,7 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) { if (!is_chan_op(sptr, chptr)) { - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), + sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), /* XXX DEAD */ me.name, parv[0], chptr->chname); return 0; } @@ -420,21 +398,21 @@ int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (check_target_limit(sptr, acptr, acptr->name, 0)) return 0; - sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], /* XXX DEAD */ acptr->name, chptr->chname); if (acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], /* XXX DEAD */ acptr->name, acptr->user->away); } if (MyConnect(acptr)) { add_invite(acptr, chptr); - sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], + sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], /* XXX DEAD */ acptr->name, chptr->chname); } else - sendto_highprot_butone(acptr, 10, "%s%s " TOK_INVITE " %s :%s", + sendto_highprot_butone(acptr, 10, "%s%s " TOK_INVITE " %s :%s", /* XXX DEAD */ NumNick(sptr), acptr->name, chptr->chname); return 0; diff --git a/ircd/m_jupe.c b/ircd/m_jupe.c index 2fca5bb..2541875 100644 --- a/ircd/m_jupe.c +++ b/ircd/m_jupe.c @@ -226,11 +226,11 @@ int mo_jupe(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (target) { if (!(target[0] == '*' && target[1] == '\0')) { if (!(acptr = find_match_server(target))) - return send_error_to_client(sptr, ERR_NOSUCHSERVER, target); + return send_reply(sptr, ERR_NOSUCHSERVER, target); if (!IsMe(acptr)) { /* manually propagate, since we don't set it */ if (!IsOper(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); sendcmdto_one(sptr, CMD_JUPE, acptr, "%C %c%s %s %Tu :%s", acptr, flags & JUPE_ACTIVE ? '+' : '-', server, parv[3], @@ -240,7 +240,7 @@ int mo_jupe(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) flags |= JUPE_LOCAL; } else if (!IsOper(sptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); } ajupe = jupe_find(server); diff --git a/ircd/m_kill.c b/ircd/m_kill.c index bf62b60..5bf72b8 100644 --- a/ircd/m_kill.c +++ b/ircd/m_kill.c @@ -141,9 +141,8 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(victim = findNUser(parv[1]))) { if (IsUser(sptr)) - sendto_one(sptr, - "%s NOTICE %s%s :KILL target disconnected before I got him :(", - NumServ(&me), NumNick(sptr)); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :KILL target disconnected " + "before I got him :(", sptr); return 0; } #if 0 @@ -153,11 +152,11 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * is done before the message is propagated --Bleep */ if (IsServer(victim) || IsMe(victim)) { - return send_error_to_client(sptr, ERR_CANTKILLSERVER); + return send_error_to_client(sptr, ERR_CANTKILLSERVER); /* XXX DEAD */ return 0; } if (IsLocOp(sptr) && !MyConnect(victim)) { - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_error_to_client(sptr, ERR_NOPRIVILEGES); /* XXX DEAD */ return 0; } /* @@ -176,9 +175,9 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ inpath = cptr->name; - sendto_op_mask(IsServer(sptr) ? SNO_SERVKILL : SNO_OPERKILL, - "Received KILL message for %s. From %s Path: %s!%s", - victim->name, parv[0], cptr->name, path); + sendto_opmask_butone(0, IsServer(sptr) ? SNO_SERVKILL : SNO_OPERKILL, + "Received KILL message for %C. From %s Path: %C!%s", + victim, parv[0], cptr, path); #if defined(SYSLOG_KILL) ircd_log_kill(victim, sptr, cptr->name, path); @@ -188,23 +187,8 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * was changed, the message has to be sent to all links, also * back. */ -#if defined(EVERYONE_SENDS_NUMERICS) - /* - * just pass parv[0] here, it's the numeric nick of the sender - */ - sendto_highprot_butone(cptr, 10, "%s " TOK_KILL " %s%s :%s!%s", - parv[0], NumNick(victim), cptr->name, path); -#else - /* - * translate to numerics - */ - if (IsServer(sptr)) - sendto_highprot_butone(cptr, 10, "%s " TOK_KILL " %s%s :%s!%s", - NumServ(sptr), NumNick(victim), cptr->name, path); - else - sendto_highprot_butone(cptr, 10, "%s%s " TOK_KILL " %s%s :%s!%s", - NumNick(sptr), NumNick(victim), cptr->name, path); -#endif + sendcmdto_serv_butone(sptr, CMD_KILL, cptr, "%C :%s!%s", victim, cptr->name, + path); /* * We *can* have crossed a NICK with this numeric... --Run * @@ -222,8 +206,8 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * by the next hop (short lag) the bounce won't propagate further. */ if (MyConnect(victim)) - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s!%s (Ghost 5 Numeric Collided)", - NumServ(&me), NumNick(victim), cptr->name, path); + sendcmdto_one(&me, CMD_KILL, cptr, "%C :%s!%s (Ghost 5 Numeric Collided)", + victim, cptr->name, path); /* * Set FLAGS_KILLED. This prevents exit_one_client from sending * the unnecessary QUIT for this. (This flag should never be @@ -238,8 +222,8 @@ int ms_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * anyway (as this user don't exist there any more either) */ if (MyConnect(victim)) - sendto_prefix_one(victim, sptr, ":%s KILL %s :%s!%s", - sptr->name, victim->name, cptr->name, path); + sendcmdto_one(sptr, CMD_KILL, victim, "%C :%s!%s", victim, cptr->name, + path); /* * the first space in path will be at the end of the * opers name: @@ -298,28 +282,28 @@ int mo_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * servers in synch when nick change and kill collide */ if (!(victim = get_history(user, (long)15))) - return send_error_to_client(sptr, ERR_NOSUCHNICK, user); + return send_reply(sptr, ERR_NOSUCHNICK, user); - sendto_one(sptr, ":%s NOTICE %s :Changed KILL %s into %s", - me.name, parv[0], user, victim->name); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Changed KILL %s into %s", sptr, + user, victim->name); } if (!MyConnect(victim) && IsLocOp(cptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); if (IsServer(victim) || IsMe(victim)) { - return send_error_to_client(sptr, ERR_CANTKILLSERVER); + return send_reply(sptr, ERR_CANTKILLSERVER); } /* * if the user is +k, prevent a kill from local user */ if (IsChannelService(victim)) - return send_error_to_client(sptr, ERR_ISCHANSERVICE, "KILL", victim->name); + return send_reply(sptr, ERR_ISCHANSERVICE, "KILL", victim->name); #ifdef LOCAL_KILL_ONLY if (!MyConnect(victim)) { - sendto_one(sptr, ":%s NOTICE %s :Nick %s isnt on your server", - me.name, parv[0], victim->name); + send_reply(&me, CMD_NOTICE, sptr, "%C :Nick %s isnt on your server", sptr, + victim->name); return 0; } #endif @@ -351,9 +335,9 @@ int mo_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * Note: "victim->name" is used instead of "user" because we may * have changed the target because of the nickname change. */ - sendto_op_mask(SNO_OPERKILL, - "Received KILL message for %s. From %s Path: %s!%s", - victim->name, parv[0], inpath, path); + sendto_opmask_butone(0, SNO_OPERKILL, + "Received KILL message for %s. From %s Path: %s!%s", + victim->name, parv[0], inpath, path); #if defined(SYSLOG_KILL) ircd_log_kill(victim, sptr, inpath, path); @@ -365,8 +349,8 @@ int mo_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * Suicide kills are NOT passed on --SRB */ if (!MyConnect(victim)) { - sendto_highprot_butone(cptr, 10, "%s%s " TOK_KILL " %s%s :%s!%s", - NumNick(sptr), NumNick(victim), inpath, path); + sendcmdto_serv_butone(sptr, CMD_KILL, cptr, "%C :%s!%s", victim, inpath, + path); /* * Set FLAGS_KILLED. This prevents exit_one_client from sending @@ -384,8 +368,7 @@ int mo_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * notification chasing the above kill, it won't get far * anyway (as this user don't exist there any more either) */ - sendto_prefix_one(victim, sptr, ":%s KILL %s :%s!%s", - parv[0], victim->name, inpath, path); + sendcmdto_one(sptr, CMD_KILL, victim, "%C :%s!%s", victim, inpath, path); sprintf_irc(buf, "Local kill by %s (%s)", sptr->name, comment); } @@ -393,7 +376,7 @@ int mo_kill(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #else /* !defined(OPER_KILL) */ - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); #endif /* !defined(OPER_KILL) */ } @@ -426,13 +409,13 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #ifdef OPER_KILL if (!IsPrivileged(cptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } #else if (!IsServer(cptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } #endif @@ -456,10 +439,10 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if (!(acptr = get_history(user, (long)15))) { - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], user); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], user); /* XXX DEAD */ return 0; } - sendto_one(sptr, ":%s NOTICE %s :Changed KILL %s into %s", + sendto_one(sptr, ":%s NOTICE %s :Changed KILL %s into %s", /* XXX DEAD */ me.name, parv[0], user, acptr->name); chasing = 1; } @@ -467,26 +450,26 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) else if (!(acptr = findNUser(user))) { if (IsUser(sptr)) - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ "%s NOTICE %s%s :KILL target disconnected before I got him :(", NumServ(&me), NumNick(sptr)); return 0; } if (!MyConnect(acptr) && IsLocOp(cptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } if (IsServer(acptr) || IsMe(acptr)) { - sendto_one(sptr, err_str(ERR_CANTKILLSERVER), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_CANTKILLSERVER), me.name, parv[0]); /* XXX DEAD */ return 0; } /* if the user is +k, prevent a kill from local user */ if (IsChannelService(acptr) && MyUser(sptr)) { - sendto_one(sptr, err_str(ERR_ISCHANSERVICE), me.name, + sendto_one(sptr, err_str(ERR_ISCHANSERVICE), me.name, /* XXX DEAD */ parv[0], "KILL", acptr->name); return 0; } @@ -494,7 +477,7 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #ifdef LOCAL_KILL_ONLY if (MyConnect(sptr) && !MyConnect(acptr)) { - sendto_one(sptr, ":%s NOTICE %s :Nick %s isnt on your server", + sendto_one(sptr, ":%s NOTICE %s :Nick %s isnt on your server", /* XXX DEAD */ me.name, parv[0], acptr->name); return 0; } @@ -532,10 +515,10 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if (IsLocOp(sptr) && !MyConnect(acptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } - sendto_op_mask(IsServer(sptr) ? SNO_SERVKILL : SNO_OPERKILL, + sendto_op_mask(IsServer(sptr) ? SNO_SERVKILL : SNO_OPERKILL, /* XXX DEAD */ "Received KILL message for %s. From %s Path: %s!%s", acptr->name, parv[0], inpath, path); #if defined(USE_SYSLOG) && defined(SYSLOG_KILL) @@ -566,7 +549,7 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if (!MyConnect(acptr) || !MyConnect(sptr) || !IsAnOper(sptr)) { - sendto_highprot_butone(cptr, 10, ":%s " TOK_KILL " %s%s :%s!%s", + sendto_highprot_butone(cptr, 10, ":%s " TOK_KILL " %s%s :%s!%s", /* XXX DEAD */ parv[0], NumNick(acptr), inpath, path); /* We *can* have crossed a NICK with this numeric... --Run */ /* Note the following situation: @@ -580,7 +563,7 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * Therefore we still need to detect numeric nick collisions too. */ if (MyConnect(acptr) && IsServer(cptr)) - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s!%s (Ghost5)", + sendto_one(cptr, "%s " TOK_KILL " %s%s :%s!%s (Ghost5)", /* XXX DEAD */ NumServ(&me), NumNick(acptr), inpath, path); acptr->flags |= FLAGS_KILLED; } @@ -592,7 +575,7 @@ int m_kill(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * anyway (as this user don't exist there any more either) */ if (MyConnect(acptr)) - sendto_prefix_one(acptr, sptr, ":%s KILL %s :%s!%s", + sendto_prefix_one(acptr, sptr, ":%s KILL %s :%s!%s", /* XXX DEAD */ parv[0], acptr->name, inpath, path); /* * Set FLAGS_KILLED. This prevents exit_one_client from sending diff --git a/ircd/m_links.c b/ircd/m_links.c index fb4273a..60b3d04 100644 --- a/ircd/m_links.c +++ b/ircd/m_links.c @@ -120,7 +120,7 @@ int m_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc > 2) { - if (hunt_server(1, cptr, sptr, "%s%s LINKS %s :%s", 1, parc, parv) != + if (hunt_server_cmd(sptr, CMD_LINKS, cptr, 1, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; mask = parv[2]; @@ -134,8 +134,7 @@ int m_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) continue; if (!BadPtr(mask) && match(mask, acptr->name)) continue; - sendto_one(sptr, rpl_str(RPL_LINKS), - me.name, parv[0], acptr->name, acptr->serv->up->name, + send_reply(sptr, RPL_LINKS, acptr->name, acptr->serv->up->name, #ifndef GODMODE acptr->hopcount, acptr->serv->prot, #else /* GODMODE */ @@ -145,8 +144,7 @@ int m_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) (acptr->info[0] ? acptr->info : "(Unknown Location)")); } - sendto_one(sptr, rpl_str(RPL_ENDOFLINKS), me.name, parv[0], - BadPtr(mask) ? "*" : mask); + send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); return 0; } @@ -169,7 +167,7 @@ int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc > 2) { - if (hunt_server(1, cptr, sptr, "%s%s LINKS %s :%s", 1, parc, parv) != + if (hunt_server_cmd(sptr, CMD_LINKS, cptr, 1, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; mask = parv[2]; @@ -183,8 +181,7 @@ int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) continue; if (!BadPtr(mask) && match(mask, acptr->name)) continue; - sendto_one(sptr, rpl_str(RPL_LINKS), - me.name, parv[0], acptr->name, acptr->serv->up->name, + send_reply(sptr, RPL_LINKS, acptr->name, acptr->serv->up->name, #ifndef GODMODE acptr->hopcount, acptr->serv->prot, #else /* GODMODE */ @@ -194,8 +191,7 @@ int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) (acptr->info[0] ? acptr->info : "(Unknown Location)")); } - sendto_one(sptr, rpl_str(RPL_ENDOFLINKS), me.name, parv[0], - BadPtr(mask) ? "*" : mask); + send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); return 0; } @@ -220,7 +216,7 @@ int m_links(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc > 2) { - if (hunt_server(1, cptr, sptr, "%s%s LINKS %s :%s", 1, parc, parv) != + if (hunt_server(1, cptr, sptr, "%s%s LINKS %s :%s", 1, parc, parv) != /* XXX DEAD */ HUNTED_ISME) return 0; mask = parv[2]; @@ -234,7 +230,7 @@ int m_links(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) continue; if (!BadPtr(mask) && match(mask, acptr->name)) continue; - sendto_one(sptr, rpl_str(RPL_LINKS), + sendto_one(sptr, rpl_str(RPL_LINKS), /* XXX DEAD */ me.name, parv[0], acptr->name, acptr->serv->up->name, #ifndef GODMODE acptr->hopcount, acptr->serv->prot, @@ -245,7 +241,7 @@ int m_links(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) (acptr->info[0] ? acptr->info : "(Unknown Location)")); } - sendto_one(sptr, rpl_str(RPL_ENDOFLINKS), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_ENDOFLINKS), me.name, parv[0], /* XXX DEAD */ BadPtr(mask) ? "*" : mask); return 0; } diff --git a/ircd/m_list.c b/ircd/m_list.c index 0b9ccf7..92145e2 100644 --- a/ircd/m_list.c +++ b/ircd/m_list.c @@ -132,7 +132,7 @@ int m_list(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) sptr->listing->chptr->mode.mode &= ~MODE_LISTED; MyFree(sptr->listing); sptr->listing = 0; - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, sptr->name); + send_reply(sptr, RPL_LISTEND); if (parc < 2) return 0; /* Let LIST abort a listing. */ } @@ -261,36 +261,36 @@ int m_list(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (show_usage) { - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - "Usage: \002/QUOTE LIST\002 \037parameters\037"); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - "Where \037parameters\037 is a space or comma seperated " - "list of one or more of:"); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002<\002\037max_users\037 ; Show all channels with less " - "than \037max_users\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002>\002\037min_users\037 ; Show all channels with more " - "than \037min_users\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002C<\002\037max_minutes\037 ; Channels that exist less " - "than \037max_minutes\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002C>\002\037min_minutes\037 ; Channels that exist more " - "than \037min_minutes\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002T<\002\037max_minutes\037 ; Channels with a topic last " - "set less than \037max_minutes\037 ago."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - " \002T>\002\037min_minutes\037 ; Channels with a topic last " - "set more than \037min_minutes\037 ago."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], - "Example: LIST <3,>1,C<10,T>0 ; 2 users, younger than 10 min., " - "topic set."); + send_reply(sptr, RPL_LISTUSAGE, + "Usage: \002/QUOTE LIST\002 \037parameters\037"); + send_reply(sptr, RPL_LISTUSAGE, + "Where \037parameters\037 is a space or comma seperated " + "list of one or more of:"); + send_reply(sptr, RPL_LISTUSAGE, + " \002<\002\037max_users\037 ; Show all channels with less " + "than \037max_users\037."); + send_reply(sptr, RPL_LISTUSAGE, + " \002>\002\037min_users\037 ; Show all channels with more " + "than \037min_users\037."); + send_reply(sptr, RPL_LISTUSAGE, + " \002C<\002\037max_minutes\037 ; Channels that exist less " + "than \037max_minutes\037."); + send_reply(sptr, RPL_LISTUSAGE, + " \002C>\002\037min_minutes\037 ; Channels that exist more " + "than \037min_minutes\037."); + send_reply(sptr, RPL_LISTUSAGE, + " \002T<\002\037max_minutes\037 ; Channels with a topic last " + "set less than \037max_minutes\037 ago."); + send_reply(sptr, RPL_LISTUSAGE, + " \002T>\002\037min_minutes\037 ; Channels with a topic last " + "set more than \037min_minutes\037 ago."); + send_reply(sptr, RPL_LISTUSAGE, + "Example: LIST <3,>1,C<10,T>0 ; 2 users, younger than 10 " + "min., topic set."); return 0; } - sendto_one(sptr, rpl_str(RPL_LISTSTART), me.name, parv[0]); + send_reply(sptr, RPL_LISTSTART); if (!show_channels) { @@ -309,7 +309,7 @@ int m_list(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) MyFree(sptr->listing); sptr->listing = 0; } - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); + send_reply(sptr, RPL_LISTEND); return 0; } @@ -317,12 +317,11 @@ int m_list(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { chptr = FindChannel(name); if (chptr && ShowChannel(sptr, chptr) && sptr->user) - sendto_one(sptr, rpl_str(RPL_LIST), me.name, parv[0], - chptr->chname, - chptr->users - number_of_zombies(chptr), chptr->topic); + send_reply(sptr, RPL_LIST, chptr->chname, + chptr->users - number_of_zombies(chptr), chptr->topic); } - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); + send_reply(sptr, RPL_LISTEND); return 0; } @@ -356,7 +355,7 @@ int m_list(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) sptr->listing->chptr->mode.mode &= ~MODE_LISTED; MyFree(sptr->listing); sptr->listing = 0; - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, sptr->name); + sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, sptr->name); /* XXX DEAD */ if (parc < 2) return 0; /* Let LIST abort a listing. */ } @@ -482,36 +481,36 @@ int m_list(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (show_usage) { - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ "Usage: \002/QUOTE LIST\002 \037parameters\037"); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ "Where \037parameters\037 is a space or comma seperated " "list of one or more of:"); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002<\002\037max_users\037 ; Show all channels with less " "than \037max_users\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002>\002\037min_users\037 ; Show all channels with more " "than \037min_users\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002C<\002\037max_minutes\037 ; Channels that exist less " "than \037max_minutes\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002C>\002\037min_minutes\037 ; Channels that exist more " "than \037min_minutes\037."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002T<\002\037max_minutes\037 ; Channels with a topic last " "set less than \037max_minutes\037 ago."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ " \002T>\002\037min_minutes\037 ; Channels with a topic last " "set more than \037min_minutes\037 ago."); - sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LISTUSAGE), me.name, parv[0], /* XXX DEAD */ "Example: LIST <3,>1,C<10,T>0 ; 2 users, younger than 10 min., " "topic set."); return 0; } - sendto_one(sptr, rpl_str(RPL_LISTSTART), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_LISTSTART), me.name, parv[0]); /* XXX DEAD */ if (!show_channels) { @@ -530,7 +529,7 @@ int m_list(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) MyFree(sptr->listing); sptr->listing = 0; } - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); /* XXX DEAD */ return 0; } @@ -538,12 +537,12 @@ int m_list(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) { chptr = FindChannel(name); if (chptr && ShowChannel(sptr, chptr) && sptr->user) - sendto_one(sptr, rpl_str(RPL_LIST), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LIST), me.name, parv[0], /* XXX DEAD */ ShowChannel(sptr, chptr) ? chptr->chname : "*", chptr->users - number_of_zombies(chptr), chptr->topic); } - sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); /* XXX DEAD */ return 0; } #endif /* 0 */ diff --git a/ircd/m_lusers.c b/ircd/m_lusers.c index ebf6751..0a1c9e3 100644 --- a/ircd/m_lusers.c +++ b/ircd/m_lusers.c @@ -112,31 +112,23 @@ int m_lusers(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { int longoutput = MyUser(sptr) || IsOper(sptr); if (parc > 2) - if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 2, parc, parv) != + if (hunt_server_cmd(sptr, CMD_LUSERS, cptr, 0, "%s :%C", 2, parc, parv) != HUNTED_ISME) return 0; - sendto_one(sptr, rpl_str(RPL_LUSERCLIENT), me.name, parv[0], - UserStats.clients - UserStats.inv_clients, UserStats.inv_clients, UserStats.servers); + send_reply(sptr, RPL_LUSERCLIENT, UserStats.clients - UserStats.inv_clients, + UserStats.inv_clients, UserStats.servers); if (longoutput && UserStats.opers) - sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], UserStats.opers); + send_reply(sptr, RPL_LUSEROP, UserStats.opers); if (UserStats.unknowns > 0) - sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0], - UserStats.unknowns); + send_reply(sptr, RPL_LUSERUNKNOWN, UserStats.unknowns); if (longoutput && UserStats.channels > 0) - sendto_one(sptr, rpl_str(RPL_LUSERCHANNELS), me.name, parv[0], - UserStats.channels); - sendto_one(sptr, rpl_str(RPL_LUSERME), me.name, parv[0], UserStats.local_clients, - UserStats.local_servers); + send_reply(sptr, RPL_LUSERCHANNELS, UserStats.channels); + send_reply(sptr, RPL_LUSERME, UserStats.local_clients, + UserStats.local_servers); - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, - ":%s NOTICE %s :Highest connection count: %d (%d clients)", - me.name, parv[0], max_connection_count, max_client_count); - else - sendto_one(sptr, - "%s NOTICE %s%s :Highest connection count: %d (%d clients)", - NumServ(&me), NumNick(sptr), max_connection_count, max_client_count); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Highest connection count: " + "%d (%d clients)", max_connection_count, max_client_count); return 0; } @@ -152,31 +144,23 @@ int ms_lusers(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { int longoutput = MyUser(sptr) || IsOper(sptr); if (parc > 2) - if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 2, parc, parv) != + if (hunt_server_cmd(sptr, CMD_LUSERS, cptr, 0, "%s :%C", 2, parc, parv) != HUNTED_ISME) return 0; - sendto_one(sptr, rpl_str(RPL_LUSERCLIENT), me.name, parv[0], - UserStats.clients - UserStats.inv_clients, UserStats.inv_clients, UserStats.servers); + send_reply(sptr, RPL_LUSERCLIENT, UserStats.clients - UserStats.inv_clients, + UserStats.inv_clients, UserStats.servers); if (longoutput && UserStats.opers) - sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], UserStats.opers); + send_reply(sptr, RPL_LUSEROP, UserStats.opers); if (UserStats.unknowns > 0) - sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0], - UserStats.unknowns); + send_reply(sptr, RPL_LUSERUNKNOWN, UserStats.unknowns); if (longoutput && UserStats.channels > 0) - sendto_one(sptr, rpl_str(RPL_LUSERCHANNELS), me.name, parv[0], - UserStats.channels); - sendto_one(sptr, rpl_str(RPL_LUSERME), me.name, parv[0], UserStats.local_clients, - UserStats.local_servers); + send_reply(sptr, RPL_LUSERCHANNELS, UserStats.channels); + send_reply(sptr, RPL_LUSERME, UserStats.local_clients, + UserStats.local_servers); - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, - ":%s NOTICE %s :Highest connection count: %d (%d clients)", - me.name, parv[0], max_connection_count, max_client_count); - else - sendto_one(sptr, - "%s NOTICE %s%s :Highest connection count: %d (%d clients)", - NumServ(&me), NumNick(sptr), max_connection_count, max_client_count); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Highest connection count: " + "%d (%d clients)", max_connection_count, max_client_count); return 0; } @@ -194,29 +178,29 @@ int m_lusers(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { int longoutput = MyUser(sptr) || IsOper(sptr); if (parc > 2) - if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 2, parc, parv) != + if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 2, parc, parv) != /* XXX DEAD */ HUNTED_ISME) return 0; - sendto_one(sptr, rpl_str(RPL_LUSERCLIENT), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LUSERCLIENT), me.name, parv[0], /* XXX DEAD */ UserStats.clients - UserStats.inv_clients, UserStats.inv_clients, UserStats.servers); if (longoutput && UserStats.opers) - sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], UserStats.opers); + sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], UserStats.opers); /* XXX DEAD */ if (UserStats.unknowns > 0) - sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0], /* XXX DEAD */ UserStats.unknowns); if (longoutput && UserStats.channels > 0) - sendto_one(sptr, rpl_str(RPL_LUSERCHANNELS), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_LUSERCHANNELS), me.name, parv[0], /* XXX DEAD */ UserStats.channels); - sendto_one(sptr, rpl_str(RPL_LUSERME), me.name, parv[0], UserStats.local_clients, + sendto_one(sptr, rpl_str(RPL_LUSERME), me.name, parv[0], UserStats.local_clients, /* XXX DEAD */ UserStats.local_servers); if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ ":%s NOTICE %s :Highest connection count: %d (%d clients)", me.name, parv[0], max_connection_count, max_client_count); else - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ "%s NOTICE %s%s :Highest connection count: %d (%d clients)", NumServ(&me), NumNick(sptr), max_connection_count, max_client_count); diff --git a/ircd/m_map.c b/ircd/m_map.c index 16b55cb..e420ea1 100644 --- a/ircd/m_map.c +++ b/ircd/m_map.c @@ -110,7 +110,7 @@ int m_map(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) parv[1] = "*"; dump_map(sptr, &me, parv[1], 0); - sendto_one(sptr, rpl_str(RPL_MAPEND), me.name, parv[0]); + send_reply(sptr, RPL_MAPEND); return 0; } @@ -129,7 +129,7 @@ int m_map(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) parv[1] = "*"; dump_map(sptr, &me, parv[1], 0); - sendto_one(sptr, rpl_str(RPL_MAPEND), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_MAPEND), me.name, parv[0]); /* XXX DEAD */ return 0; } diff --git a/ircd/m_mode.c b/ircd/m_mode.c index 9e93a00..ac2c812 100644 --- a/ircd/m_mode.c +++ b/ircd/m_mode.c @@ -123,10 +123,8 @@ m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) *modebuf = *parabuf = '\0'; modebuf[1] = '\0'; channel_modes(sptr, modebuf, parabuf, chptr); - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], - chptr->chname, modebuf, parabuf); - sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], - chptr->chname, chptr->creationtime); + send_reply(sptr, RPL_CHANNELMODEIS, chptr->chname, modebuf, parabuf); + send_reply(sptr, RPL_CREATIONTIME, chptr->chname, chptr->creationtime); return 0; } @@ -251,8 +249,7 @@ int m_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ if (IsModelessChannel(chptr->chname)) { if (IsUser(sptr)) - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], - chptr->chname, "+nt", ""); + send_reply(sptr, RPL_CHANNELMODEIS, chptr->chname, "+nt", ""); return 0; } @@ -263,10 +260,8 @@ int m_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) *modebuf = *parabuf = '\0'; modebuf[1] = '\0'; channel_modes(sptr, modebuf, parabuf, chptr); - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], - chptr->chname, modebuf, parabuf); - sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], - chptr->chname, chptr->creationtime); + send_reply(sptr, RPL_CHANNELMODEIS, chptr->chname, modebuf, parabuf); + send_reply(sptr, RPL_CREATIONTIME, chptr->chname, chptr->creationtime); return 0; } @@ -274,27 +269,27 @@ int m_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(sendts = set_mode(cptr, sptr, chptr, parc - 2, parv + 2, modebuf, parabuf, nparabuf, &badop))) { - sendto_one(sptr, err_str(find_channel_member(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : - ERR_NOTONCHANNEL), me.name, parv[0], chptr->chname); + send_reply(sptr, (find_channel_member(sptr, chptr) ? + ERR_CHANOPRIVSNEEDED : ERR_NOTONCHANNEL), chptr->chname); return 0; } if (badop >= 2) - send_hack_notice(cptr, sptr, parc, parv, badop, 1); + send_hack_notice(cptr, sptr, parc, parv, badop, 1); /* XXX DYING */ if (strlen(modebuf) > 1 || sendts > 0) { if (badop != 2 && strlen(modebuf) > 1) { #ifdef OPER_MODE_LCHAN if (LocalChanOperMode) { - sendto_channel_butserv(chptr, &me, ":%s MODE %s %s %s", - me.name, chptr->chname, modebuf, parabuf); - sendto_op_mask(SNO_HACK4,"OPER MODE: %s MODE %s %s %s", - sptr->name, chptr->chname, modebuf, parabuf); + sendcmdto_channel_butserv(&me, CMD_MODE, chptr, "%H %s %s", chptr, + modebuf, parabuf); + sendto_opmask_butone(0, SNO_HACK4, "OPER MODE: %C MODE %H %s %s", + sptr, chptr, modebuf, parabuf); } else #endif - sendto_channel_butserv(chptr, sptr, ":%s MODE %s %s %s", - parv[0], chptr->chname, modebuf, parabuf); + sendcmdto_channel_butserv(sptr, CMD_MODE, chptr, "%H %s %s", chptr, + modebuf, parabuf); } if (IsLocalChannel(chptr->chname)) return 0; @@ -303,18 +298,14 @@ int m_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (*modebuf == '\0') strcpy(modebuf, "+"); if (badop != 2) { - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s " TIME_T_FMT, - NumServ(sptr), chptr->chname, modebuf, nparabuf, - (badop == 4) ? (time_t) 0 : chptr->creationtime); + sendcmdto_serv_butone(sptr, CMD_MODE, cptr, "%H %s %s %Tu", chptr, + modebuf, nparabuf, (badop == 4) ? (time_t) 0 : + chptr->creationtime); } } else { - if (IsServer(sptr)) - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s", - NumServ(sptr), chptr->chname, modebuf, nparabuf); - else - sendto_highprot_butone(cptr, 10, "%s%s " TOK_MODE " %s %s %s", - NumNick(sptr), chptr->chname, modebuf, nparabuf); + sendcmdto_serv_butone(sptr, CMD_MODE, cptr, "%H %s %s", chptr, modebuf, + nparabuf); } } return 0; @@ -358,8 +349,7 @@ int ms_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ if (IsModelessChannel(chptr->chname)) { if (IsUser(sptr)) - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], - chptr->chname, "+nt", ""); + send_reply(sptr, RPL_CHANNELMODEIS, chptr->chname, "+nt", ""); return 0; } @@ -370,10 +360,8 @@ int ms_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) *modebuf = *parabuf = '\0'; modebuf[1] = '\0'; channel_modes(sptr, modebuf, parabuf, chptr); - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], - chptr->chname, modebuf, parabuf); - sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], - chptr->chname, chptr->creationtime); + send_reply(sptr, RPL_CHANNELMODEIS, chptr->chname, modebuf, parabuf); + send_reply(sptr, RPL_CREATIONTIME, chptr->chname, chptr->creationtime); return 0; } @@ -381,27 +369,27 @@ int ms_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(sendts = set_mode(cptr, sptr, chptr, parc - 2, parv + 2, modebuf, parabuf, nparabuf, &badop))) { - sendto_one(sptr, err_str(find_channel_member(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : - ERR_NOTONCHANNEL), me.name, parv[0], chptr->chname); + send_reply(sptr, (find_channel_member(sptr, chptr) ? + ERR_CHANOPRIVSNEEDED : ERR_NOTONCHANNEL), chptr->chname); return 0; } if (badop >= 2) - send_hack_notice(cptr, sptr, parc, parv, badop, 1); + send_hack_notice(cptr, sptr, parc, parv, badop, 1); /* XXX DYING */ if (strlen(modebuf) > 1 || sendts > 0) { if (badop != 2 && strlen(modebuf) > 1) { #ifdef OPER_MODE_LCHAN if (LocalChanOperMode) { - sendto_channel_butserv(chptr, &me, ":%s MODE %s %s %s", - me.name, chptr->chname, modebuf, parabuf); - sendto_op_mask(SNO_HACK4,"OPER MODE: %s MODE %s %s %s", - me.name, chptr->chname, modebuf, parabuf); + sendcmdto_channel_butserv(&me, CMD_MODE, chptr, "%H %s %s", chptr, + modebuf, parabuf); + sendto_opmask_butone(0, SNO_HACK4, "OPER MODE: %C MODE %H %s %s", + sptr, chptr, modebuf, parabuf); } else #endif - sendto_channel_butserv(chptr, sptr, ":%s MODE %s %s %s", - parv[0], chptr->chname, modebuf, parabuf); + sendcmdto_channel_butserv(sptr, CMD_MODE, chptr, "%H %s %s", chptr, + modebuf, parabuf); } if (IsLocalChannel(chptr->chname)) return 0; @@ -410,18 +398,14 @@ int ms_mode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (*modebuf == '\0') strcpy(modebuf, "+"); if (badop != 2) { - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s " TIME_T_FMT, - NumServ(sptr), chptr->chname, modebuf, nparabuf, - (badop == 4) ? (time_t) 0 : chptr->creationtime); + sendcmdto_serv_butone(sptr, CMD_MODE, cptr, "%H %s %s %Tu", chptr, + modebuf, nparabuf, (badop == 4) ? (time_t) 0 : + chptr->creationtime); } } else { - if (IsServer(sptr)) - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s", - NumServ(sptr), chptr->chname, modebuf, nparabuf); - else - sendto_highprot_butone(cptr, 10, "%s%s " TOK_MODE " %s %s %s", - NumNick(sptr), chptr->chname, modebuf, nparabuf); + sendcmdto_serv_butone(sptr, CMD_MODE, cptr, "%H %s %s", chptr, modebuf, + nparabuf); } } return 0; @@ -466,7 +450,7 @@ int m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if (IsModelessChannel(chptr->chname)) { if (IsUser(sptr)) - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], /* XXX DEAD */ chptr->chname, "+nt", ""); return 0; } @@ -478,9 +462,9 @@ int m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) *modebuf = *parabuf = '\0'; modebuf[1] = '\0'; channel_modes(sptr, modebuf, parabuf, chptr); - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], /* XXX DEAD */ chptr->chname, modebuf, parabuf); - sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], /* XXX DEAD */ chptr->chname, chptr->creationtime); return 0; } @@ -489,7 +473,7 @@ int m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!(sendts = set_mode(cptr, sptr, chptr, parc - 2, parv + 2, modebuf, parabuf, nparabuf, &badop))) { - sendto_one(sptr, err_str(find_channel_member(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : + sendto_one(sptr, err_str(find_channel_member(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : /* XXX DEAD */ ERR_NOTONCHANNEL), me.name, parv[0], chptr->chname); return 0; } @@ -501,14 +485,14 @@ int m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (badop != 2 && strlen(modebuf) > 1) { #ifdef OPER_MODE_LCHAN if (LocalChanOperMode) { - sendto_channel_butserv(chptr, &me, ":%s MODE %s %s %s", + sendto_channel_butserv(chptr, &me, ":%s MODE %s %s %s", /* XXX DEAD */ me.name, chptr->chname, modebuf, parabuf); - sendto_op_mask(SNO_HACK4,"OPER MODE: %s MODE %s %s %s", + sendto_op_mask(SNO_HACK4,"OPER MODE: %s MODE %s %s %s", /* XXX DEAD */ me.name, chptr->chname, modebuf, parabuf); } else #endif - sendto_channel_butserv(chptr, sptr, ":%s MODE %s %s %s", + sendto_channel_butserv(chptr, sptr, ":%s MODE %s %s %s", /* XXX DEAD */ parv[0], chptr->chname, modebuf, parabuf); } if (IsLocalChannel(chptr->chname)) @@ -518,17 +502,17 @@ int m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (*modebuf == '\0') strcpy(modebuf, "+"); if (badop != 2) { - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s " TIME_T_FMT, + sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s " TIME_T_FMT, /* XXX DEAD */ NumServ(sptr), chptr->chname, modebuf, nparabuf, (badop == 4) ? (time_t) 0 : chptr->creationtime); } } else { if (IsServer(sptr)) - sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s", + sendto_highprot_butone(cptr, 10, "%s " TOK_MODE " %s %s %s", /* XXX DEAD */ NumServ(sptr), chptr->chname, modebuf, nparabuf); else - sendto_highprot_butone(cptr, 10, "%s%s " TOK_MODE " %s %s %s", + sendto_highprot_butone(cptr, 10, "%s%s " TOK_MODE " %s %s %s", /* XXX DEAD */ NumNick(sptr), chptr->chname, modebuf, nparabuf); } } diff --git a/ircd/m_motd.c b/ircd/m_motd.c index 84ab253..88eb8f4 100644 --- a/ircd/m_motd.c +++ b/ircd/m_motd.c @@ -131,8 +131,8 @@ int m_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { no_motd = 0; #endif - if (hunt_server(0, cptr, sptr, "%s%s " TOK_MOTD " %s", 1, parc, - parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_MODE, cptr, 0, "%C", 1, parc, parv) != + HUNTED_ISME) return 0; #ifdef NODEFAULTMOTD } @@ -168,7 +168,7 @@ int m_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } if (temp == 0) { - sendto_one(sptr, err_str(ERR_NOMOTD), me.name, parv[0]); + send_reply(sptr, ERR_NOMOTD); return 0; } #ifdef NODEFAULTMOTD @@ -177,17 +177,17 @@ int m_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif if (tm) /* Not remote? */ { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :- %d/%d/%d %d:%02d", me.name, RPL_MOTD, - parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year, - tm->tm_hour, tm->tm_min); + send_reply(sptr, RPL_MOTDSTART, me.name); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, "- %d/%d/%d %d:%02d", + tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year, tm->tm_hour, + tm->tm_min); count = 100; } else count = 3; for (; temp; temp = temp->next) { - sendto_one(sptr, rpl_str(RPL_MOTD), me.name, parv[0], temp->line); + send_reply(sptr, RPL_MOTD, temp->line); if (--count == 0) break; } @@ -195,15 +195,15 @@ int m_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } else { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_MOTD, parv[0], - "Type /MOTD to read the AUP before continuing using this service."); - sendto_one(sptr, - ":%s %d %s :The message of the day was last changed: %d/%d/%d", me.name, - RPL_MOTD, parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); + send_reply(sptr, RPL_MOTDSTART, me.name); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, ":Type /MOTD to read the " + "AUP before continuing using this service."); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, ":The message of the day was " + "last changed: %d/%d/%d", tm->tm_mday, tm->tm_mon + 1, + 1900 + tm->tm_year); } #endif - sendto_one(sptr, rpl_str(RPL_ENDOFMOTD), me.name, parv[0]); + send_reply(sptr, RPL_ENDOFMOTD); return 0; } @@ -237,8 +237,8 @@ int ms_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { no_motd = 0; #endif - if (hunt_server(0, cptr, sptr, "%s%s " TOK_MOTD " %s", 1, parc, - parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_MOTD, cptr, 0, "%C", 1, parc, parv) != + HUNTED_ISME) return 0; #ifdef NODEFAULTMOTD } @@ -274,7 +274,7 @@ int ms_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } if (temp == 0) { - sendto_one(sptr, err_str(ERR_NOMOTD), me.name, parv[0]); + send_reply(sptr, ERR_NOMOTD); return 0; } #ifdef NODEFAULTMOTD @@ -283,17 +283,17 @@ int ms_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif if (tm) /* Not remote? */ { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :- %d/%d/%d %d:%02d", me.name, RPL_MOTD, - parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year, - tm->tm_hour, tm->tm_min); + send_reply(sptr, RPL_MOTDSTART, me.name); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, ":- %d/%d/%d %d:%02d", + tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year, tm->tm_hour, + tm->tm_min); count = 100; } else count = 3; for (; temp; temp = temp->next) { - sendto_one(sptr, rpl_str(RPL_MOTD), me.name, parv[0], temp->line); + send_reply(sptr, RPL_MOTD, temp->line); if (--count == 0) break; } @@ -301,15 +301,15 @@ int ms_motd(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } else { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_MOTD, parv[0], - "Type /MOTD to read the AUP before continuing using this service."); - sendto_one(sptr, - ":%s %d %s :The message of the day was last changed: %d/%d/%d", me.name, - RPL_MOTD, parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); + send_reply(sptr, RPL_MOTDSTART, me.name); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, ":Type /MOTD to read the " + "AUP before continuing using this service."); + send_reply(sptr, RPL_EXPLICIT | RPL_MOTD, ":The message of the day was " + "last changed: %d/%d/%d", tm->tm_mday, tm->tm_mon + 1, + 1900 + tm->tm_year); } #endif - sendto_one(sptr, rpl_str(RPL_ENDOFMOTD), me.name, parv[0]); + send_reply(sptr, RPL_ENDOFMOTD); return 0; } @@ -344,7 +344,7 @@ int m_motd(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { no_motd = 0; #endif - if (hunt_server(0, cptr, sptr, "%s%s " TOK_MOTD " %s", 1, parc, + if (hunt_server(0, cptr, sptr, "%s%s " TOK_MOTD " %s", 1, parc, /* XXX DEAD */ parv) != HUNTED_ISME) return 0; #ifdef NODEFAULTMOTD @@ -381,7 +381,7 @@ int m_motd(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) } if (temp == 0) { - sendto_one(sptr, err_str(ERR_NOMOTD), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOMOTD), me.name, parv[0]); /* XXX DEAD */ return 0; } #ifdef NODEFAULTMOTD @@ -390,8 +390,8 @@ int m_motd(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif if (tm) /* Not remote? */ { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :- %d/%d/%d %d:%02d", me.name, RPL_MOTD, + sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); /* XXX DEAD */ + sendto_one(sptr, ":%s %d %s :- %d/%d/%d %d:%02d", me.name, RPL_MOTD, /* XXX DEAD */ parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year, tm->tm_hour, tm->tm_min); count = 100; @@ -400,7 +400,7 @@ int m_motd(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) count = 3; for (; temp; temp = temp->next) { - sendto_one(sptr, rpl_str(RPL_MOTD), me.name, parv[0], temp->line); + sendto_one(sptr, rpl_str(RPL_MOTD), me.name, parv[0], temp->line); /* XXX DEAD */ if (--count == 0) break; } @@ -408,15 +408,15 @@ int m_motd(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) } else { - sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); - sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_MOTD, parv[0], + sendto_one(sptr, rpl_str(RPL_MOTDSTART), me.name, parv[0], me.name); /* XXX DEAD */ + sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_MOTD, parv[0], /* XXX DEAD */ "Type /MOTD to read the AUP before continuing using this service."); - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ ":%s %d %s :The message of the day was last changed: %d/%d/%d", me.name, RPL_MOTD, parv[0], tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); } #endif - sendto_one(sptr, rpl_str(RPL_ENDOFMOTD), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_ENDOFMOTD), me.name, parv[0]); /* XXX DEAD */ return 0; } #endif /* 0 */ diff --git a/ircd/m_names.c b/ircd/m_names.c index 5d6f3a1..4ff6699 100644 --- a/ircd/m_names.c +++ b/ircd/m_names.c @@ -122,7 +122,8 @@ int m_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) char* para = parc > 1 ? parv[1] : 0; char buf[BUFSIZE]; - if (parc > 2 && hunt_server(1, cptr, sptr, "%s%s " TOK_NAMES " %s %s", 2, parc, parv)) + if (parc > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %C", 2, parc, + parv)) return 0; mlen = strlen(me.name) + 10 + strlen(sptr->name); @@ -213,7 +214,7 @@ int m_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif /* space, modifier, nick, \r \n \0 */ { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); strcpy(buf, "* "); ircd_strncpy(buf + 2, chptr->chname, len + 1); buf[len + 2] = 0; @@ -227,12 +228,11 @@ int m_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); } if (!EmptyString(para)) { - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], - ch2ptr ? ch2ptr->chname : para); + send_reply(sptr, RPL_ENDOFNAMES, ch2ptr ? ch2ptr->chname : para); return (1); } @@ -294,15 +294,15 @@ int m_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (mlen + idx + NICKLEN + 3 > BUFSIZE) /* space, \r\n\0 */ #endif { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); strcpy(buf, "* * :"); idx = 5; flag = 0; } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], "*"); + send_reply(sptr, RPL_NAMREPLY, buf); + send_reply(sptr, RPL_ENDOFNAMES, "*"); return 1; return 0; } @@ -323,7 +323,8 @@ int ms_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) char *s, *para = parc > 1 ? parv[1] : 0; char buf[BUFSIZE]; - if (parc > 2 && hunt_server(1, cptr, sptr, "%s%s " TOK_NAMES " %s %s", 2, parc, parv)) + if (parc > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %C", 2, parc, + parv)) return 0; mlen = strlen(me.name) + 10 + strlen(sptr->name); @@ -413,7 +414,7 @@ int ms_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif /* space, modifier, nick, \r \n \0 */ { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); strcpy(buf, "* "); ircd_strncpy(buf + 2, chptr->chname, len + 1); buf[len + 2] = 0; @@ -427,12 +428,11 @@ int ms_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); } if (!EmptyString(para)) { - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], - ch2ptr ? ch2ptr->chname : para); + send_reply(sptr, RPL_ENDOFNAMES, ch2ptr ? ch2ptr->chname : para); return (1); } @@ -494,15 +494,15 @@ int ms_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (mlen + idx + NICKLEN + 3 > BUFSIZE) /* space, \r\n\0 */ #endif { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + send_reply(sptr, RPL_NAMREPLY, buf); strcpy(buf, "* * :"); idx = 5; flag = 0; } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], "*"); + send_reply(sptr, RPL_NAMREPLY, buf); + send_reply(sptr, RPL_ENDOFNAMES, "*"); return 1; return 0; } @@ -525,7 +525,7 @@ int m_names(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) char *s, *para = parc > 1 ? parv[1] : 0; char buf[BUFSIZE]; - if (parc > 2 && hunt_server(1, cptr, sptr, "%s%s " TOK_NAMES " %s %s", 2, parc, parv)) + if (parc > 2 && hunt_server(1, cptr, sptr, "%s%s " TOK_NAMES " %s %s", 2, parc, parv)) /* XXX DEAD */ return 0; mlen = strlen(me.name) + 10 + strlen(sptr->name); @@ -615,7 +615,7 @@ int m_names(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif /* space, modifier, nick, \r \n \0 */ { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); /* XXX DEAD */ strcpy(buf, "* "); ircd_strncpy(buf + 2, chptr->chname, len + 1); buf[len + 2] = 0; @@ -629,11 +629,11 @@ int m_names(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); /* XXX DEAD */ } if (!EmptyString(para)) { - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], /* XXX DEAD */ ch2ptr ? ch2ptr->chname : para); return (1); } @@ -696,15 +696,15 @@ int m_names(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (mlen + idx + NICKLEN + 3 > BUFSIZE) /* space, \r\n\0 */ #endif { - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); + sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); /* XXX DEAD */ strcpy(buf, "* * :"); idx = 5; flag = 0; } } if (flag) - sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); - sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], "*"); + sendto_one(sptr, rpl_str(RPL_NAMREPLY), me.name, parv[0], buf); /* XXX DEAD */ + sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], "*"); /* XXX DEAD */ return 1; } #endif /* 0 */ diff --git a/ircd/m_nick.c b/ircd/m_nick.c index fa2aab0..945e3a9 100644 --- a/ircd/m_nick.c +++ b/ircd/m_nick.c @@ -128,7 +128,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) client_name = (*sptr->name) ? sptr->name : "*"; if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, client_name); + send_reply(sptr, ERR_NONICKNAMEGIVEN); return 0; } /* @@ -151,7 +151,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * and KILL it. -avalon 4/4/92 */ if (0 == do_nick_name(nick)) { - sendto_one(sptr, err_str(ERR_ERRONEUSNICKNAME), me.name, client_name, arg); + send_reply(sptr, ERR_ERRONEUSNICKNAME, arg); return 0; } @@ -160,7 +160,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * nick, if so tell him that it's a nick in use... */ if (isNickJuped(nick)) { - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, client_name, nick); + send_reply(sptr, ERR_NICKNAMEINUSE, nick); return 0; /* NICK message ignored */ } @@ -171,7 +171,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return set_nick_name(cptr, sptr, nick, parc, parv); } if (IsServer(acptr)) { - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, client_name, nick); + send_reply(sptr, ERR_NICKNAMEINUSE, nick); return 0; /* NICK message ignored */ } /* @@ -225,7 +225,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * NICK is coming from local client connection. Just * send error reply and ignore the command. */ - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, client_name, nick); + send_reply(sptr, ERR_NICKNAMEINUSE, nick); return 0; /* NICK message ignored */ } @@ -261,7 +261,8 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(IsServer(cptr)); if ((IsServer(sptr) && parc < 8) || parc < 3) { - sendto_ops("bad NICK param count for %s from %s", parv[1], cptr->name); + sendto_opmask_butone(0, SNO_OLDSNO, "bad NICK param count for %s from %C", + parv[1], cptr); return need_more_params(sptr, "NICK"); } @@ -287,21 +288,23 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * and KILL it. -avalon 4/4/92 */ if (0 == do_nick_name(nick) || 0 != strcmp(nick, parv[1])) { - sendto_one(sptr, err_str(ERR_ERRONEUSNICKNAME), me.name, parv[0], parv[1]); + send_reply(sptr, ERR_ERRONEUSNICKNAME, parv[1]); ++ServerStats->is_kill; - sendto_ops("Bad Nick: %s From: %s %s", parv[1], parv[0], cptr->name); - sendto_one(cptr, "%s " TOK_KILL " %s :%s (%s <- %s[%s])", - NumServ(&me), IsServer(sptr) ? parv[parc - 2] : parv[0], me.name, - parv[1], nick, cptr->name); + sendto_opmask_butone(0, SNO_OLDSNO, "Bad Nick: %s From: %s %C", parv[1], + parv[0], cptr); + sendcmdto_one(&me, CMD_KILL, cptr, "%s :%s (%s <- %s[%s])", + IsServer(sptr) ? parv[parc - 2] : parv[0], me.name, parv[1], + nick, cptr->name); if (!IsServer(sptr)) { /* * bad nick _change_ */ - sendto_highprot_butone(&me, 10, "%s " TOK_KILL " %s :%s (%s <- %s!%s@%s)", - NumServ(&me), parv[0], me.name, cptr->name, - parv[0], sptr->user ? sptr->username : "", - sptr->user ? sptr->user->server->name : cptr->name); + sendcmdto_serv_butone(&me, CMD_KILL, 0, "%s :%s (%s <- %s!%s@%s)", + parv[0], me.name, cptr->name, parv[0], + sptr->user ? sptr->username : "", + sptr->user ? sptr->user->server->name : + cptr->name); } return 0; } @@ -329,12 +332,12 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * there is no danger of the server being disconnected. * Ultimate way to jupiter a nick ? >;-). -avalon */ - sendto_ops("Nick collision on %s(%s <- %s)", sptr->name, acptr->from->name, cptr->name); + sendto_opmask_butone(0, SNO_OLDSNO, "Nick collision on %C(%C <- %C)", sptr, + acptr->from, cptr); ++ServerStats->is_kill; - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (%s <- %s)", - NumServ(&me), NumNick(sptr), me.name, acptr->from->name, - cptr->name); + sendcmdto_one(&me, CMD_KILL, cptr, "%C :%s (%s <- %s)", sptr, me.name, + acptr->from->name, cptr->name); sptr->flags |= FLAGS_KILLED; /* @@ -410,9 +413,10 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ differ = (acptr->ip.s_addr != htonl(base64toint(parv[parc - 3]))) || (0 != ircd_strcmp(acptr->user->username, parv[4])); - sendto_ops("Nick collision on %s (%s " TIME_T_FMT " <- %s " TIME_T_FMT - " (%s user@host))", acptr->name, acptr->from->name, acptr->lastnick, - cptr->name, lastnick, differ ? "Different" : "Same"); + sendto_opmask_butone(0, SNO_OLDSNO, "Nick collision on %C (%C %Tu <- " + "%C %Tu (%s user@host))", acptr, acptr->from, + acptr->lastnick, cptr, lastnick, + differ ? "Different" : "Same"); } else { /* @@ -422,9 +426,9 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ differ = (acptr->ip.s_addr != sptr->ip.s_addr) || (0 != ircd_strcmp(acptr->user->username, sptr->user->username)); - sendto_ops("Nick change collision from %s to %s (%s " TIME_T_FMT " <- %s " - TIME_T_FMT ")", sptr->name, acptr->name, acptr->from->name, - acptr->lastnick, cptr->name, lastnick); + sendto_opmask_butone(0, SNO_OLDSNO, "Nick change collision from %C to " + "%C (%C %Tu <- %C %Tu)", sptr, acptr, acptr->from, + acptr->lastnick, cptr, lastnick); } /* * Now remove (kill) the nick on our side if it is the youngest. @@ -439,17 +443,16 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if ((differ && lastnick >= acptr->lastnick) || (!differ && lastnick <= acptr->lastnick)) { if (!IsServer(sptr)) { ++ServerStats->is_kill; - sendto_highprot_butone(&me, 10, /* Kill old from outgoing servers */ - "%s " TOK_KILL " %s%s :%s (%s <- %s (Nick collision))", - NumServ(&me), NumNick(sptr), me.name, acptr->from->name, - cptr->name); + sendcmdto_serv_butone(&me, CMD_KILL, sptr, "%C :%s (%s <- %s (Nick " + "collision))", sptr, me.name, acptr->from->name, + cptr->name); assert(!MyConnect(sptr)); #if 0 /* * XXX - impossible */ if (MyConnect(sptr)) - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (Ghost 2)", + sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (Ghost 2)", /* XXX DEAD */ NumServ(&me), NumNick(sptr), me.name); #endif sptr->flags |= FLAGS_KILLED; @@ -463,7 +466,7 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (lastnick != acptr->lastnick) return 0; /* Ignore the NICK */ } - sendto_one(acptr, err_str(ERR_NICKCOLLISION), me.name, acptr->name, nick); + send_reply(acptr, ERR_NICKCOLLISION, nick); } ++ServerStats->is_kill; @@ -472,24 +475,21 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * This exits the client we had before getting the NICK message */ if (differ) { - sendto_highprot_butone(&me, 10, /* Kill our old from outgoing servers */ - "%s " TOK_KILL " %s%s :%s (%s <- %s (older nick overruled))", - NumServ(&me), NumNick(acptr), me.name, acptr->from->name, - cptr->name); + sendcmdto_serv_butone(&me, CMD_KILL, acptr, "%C :%s (%s <- %s (older " + "nick overruled))", acptr, me.name, + acptr->from->name, cptr->name); if (MyConnect(acptr)) - sendto_one(cptr, "%s%s " TOK_QUIT " :Local kill by %s (Ghost)", - NumNick(acptr), me.name); + sendcmdto_one(acptr, CMD_QUIT, cptr, ":Local kill by %s (Ghost)", + me.name); exit_client(cptr, acptr, &me, "Nick collision (older nick overruled)"); } else { - sendto_highprot_butone(&me, 10, /* Kill our old from outgoing servers */ - "%s " TOK_KILL " %s%s :%s (%s <- %s (nick collision from same user@host))", - NumServ(&me), NumNick(acptr), me.name, acptr->from->name, - cptr->name); + sendcmdto_serv_butone(&me, CMD_KILL, acptr, "%C :%s (%s <- %s (nick " + "collision from same user@host))", acptr, me.name, + acptr->from->name, cptr->name); if (MyConnect(acptr)) - sendto_one(cptr, - "%s%s " TOK_QUIT " :Local kill by %s (Ghost: switched servers too fast)", - NumNick(acptr), me.name); + sendcmdto_one(acptr, CMD_QUIT, cptr, ":Local kill by %s (Ghost: ", + "switched servers too fast)", me.name); exit_client(cptr, acptr, &me, "Nick collision (You collided yourself)"); } if (lastnick == acptr->lastnick) @@ -529,13 +529,13 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) int differ = 1; if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); /* XXX DEAD */ return 0; } else if ((IsServer(sptr) && parc < 8) || (IsServer(cptr) && parc < 3)) { need_more_params(sptr, "NICK"); - sendto_ops("bad NICK param count for %s from %s", parv[1], cptr->name); + sendto_ops("bad NICK param count for %s from %s", parv[1], cptr->name); /* XXX DEAD */ return 0; } if (MyConnect(sptr) && (s = strchr(parv[1], '~'))) @@ -561,19 +561,19 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if (do_nick_name(nick) == 0 || (IsServer(cptr) && strcmp(nick, parv[1]))) { - sendto_one(sptr, err_str(ERR_ERRONEUSNICKNAME), me.name, parv[0], parv[1]); + sendto_one(sptr, err_str(ERR_ERRONEUSNICKNAME), me.name, parv[0], parv[1]); /* XXX DEAD */ if (IsServer(cptr)) { ServerStats->is_kill++; - sendto_ops("Bad Nick: %s From: %s %s", + sendto_ops("Bad Nick: %s From: %s %s", /* XXX DEAD */ parv[1], parv[0], cptr->name); - sendto_one(cptr, "%s " TOK_KILL " %s :%s (%s <- %s[%s])", + sendto_one(cptr, "%s " TOK_KILL " %s :%s (%s <- %s[%s])", /* XXX DEAD */ NumServ(&me), IsServer(sptr) ? parv[parc - 2] : parv[0], me.name, parv[1], nick, cptr->name); if (!IsServer(sptr)) /* bad nick _change_ */ { - sendto_highprot_butone(&me, 10, "%s " TOK_KILL " %s :%s (%s <- %s!%s@%s)", + sendto_highprot_butone(&me, 10, "%s " TOK_KILL " %s :%s (%s <- %s!%s@%s)", /* XXX DEAD */ NumServ(&me), parv[0], me.name, cptr->name, parv[0], sptr->user ? sptr->username : "", sptr->user ? sptr->user->server->name : cptr->name); @@ -588,7 +588,7 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ if ((!IsServer(cptr)) && isNickJuped(nick)) { - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, + sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, /* XXX DEAD */ /* parv[0] is empty when connecting */ EmptyString(parv[0]) ? "*" : parv[0], nick); return 0; /* NICK message ignored */ @@ -605,7 +605,7 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if ((acptr = FindServer(nick))) { if (MyConnect(sptr)) { - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, + sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, /* XXX DEAD */ EmptyString(parv[0]) ? "*" : parv[0], nick); return 0; /* NICK message ignored */ } @@ -616,10 +616,10 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * there is no danger of the server being disconnected. * Ultimate way to jupiter a nick ? >;-). -avalon */ - sendto_ops("Nick collision on %s(%s <- %s)", + sendto_ops("Nick collision on %s(%s <- %s)", /* XXX DEAD */ sptr->name, acptr->from->name, cptr->name); ServerStats->is_kill++; - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (%s <- %s)", + sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (%s <- %s)", /* XXX DEAD */ NumServ(&me), NumNick(sptr), me.name, acptr->from->name, cptr->name); sptr->flags |= FLAGS_KILLED; @@ -678,7 +678,7 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) * NICK is coming from local client connection. Just * send error reply and ignore the command. */ - sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, + sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, /* XXX DEAD */ /* parv[0] is empty when connecting */ EmptyString(parv[0]) ? "*" : parv[0], nick); return 0; /* NICK message ignored */ @@ -706,7 +706,7 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ differ = (acptr->ip.s_addr != htonl(base64toint(parv[parc - 3]))) || (0 != ircd_strcmp(acptr->user->username, parv[4])); - sendto_ops("Nick collision on %s (%s " TIME_T_FMT " <- %s " TIME_T_FMT + sendto_ops("Nick collision on %s (%s " TIME_T_FMT " <- %s " TIME_T_FMT /* XXX DEAD */ " (%s user@host))", acptr->name, acptr->from->name, acptr->lastnick, cptr->name, lastnick, differ ? "Different" : "Same"); } @@ -718,7 +718,7 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) lastnick = atoi(parv[2]); differ = (acptr->ip.s_addr != sptr->ip.s_addr) || (0 != ircd_strcmp(acptr->user->username, sptr->user->username)); - sendto_ops("Nick change collision from %s to %s (%s " TIME_T_FMT " <- %s " + sendto_ops("Nick change collision from %s to %s (%s " TIME_T_FMT " <- %s " /* XXX DEAD */ TIME_T_FMT ")", sptr->name, acptr->name, acptr->from->name, acptr->lastnick, cptr->name, lastnick); } @@ -737,12 +737,12 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!IsServer(sptr)) { ServerStats->is_kill++; - sendto_highprot_butone(cptr, 10, /* Kill old from outgoing servers */ + sendto_highprot_butone(cptr, 10, /* Kill old from outgoing servers */ /* XXX DEAD */ "%s " TOK_KILL " %s%s :%s (%s <- %s (Nick collision))", NumServ(&me), NumNick(sptr), me.name, acptr->from->name, cptr->name); if (MyConnect(sptr) && IsServer(cptr) && Protocol(cptr) > 9) - sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (Ghost2)", + sendto_one(cptr, "%s " TOK_KILL " %s%s :%s (Ghost2)", /* XXX DEAD */ NumServ(&me), NumNick(sptr), me.name); sptr->flags |= FLAGS_KILLED; exit_client(cptr, sptr, &me, "Nick collision (you're a ghost)"); @@ -750,29 +750,29 @@ int m_nick(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (lastnick != acptr->lastnick) return 0; /* Ignore the NICK */ } - sendto_one(acptr, err_str(ERR_NICKCOLLISION), me.name, acptr->name, nick); + sendto_one(acptr, err_str(ERR_NICKCOLLISION), me.name, acptr->name, nick); /* XXX DEAD */ } ServerStats->is_kill++; acptr->flags |= FLAGS_KILLED; if (differ) { - sendto_highprot_butone(cptr, 10, /* Kill our old from outgoing servers */ + sendto_highprot_butone(cptr, 10, /* Kill our old from outgoing servers */ /* XXX DEAD */ "%s " TOK_KILL " %s%s :%s (%s <- %s (older nick overruled))", NumServ(&me), NumNick(acptr), me.name, acptr->from->name, cptr->name); if (MyConnect(acptr) && IsServer(cptr) && Protocol(cptr) > 9) - sendto_one(cptr, "%s%s " TOK_QUIT " :Local kill by %s (Ghost)", + sendto_one(cptr, "%s%s " TOK_QUIT " :Local kill by %s (Ghost)", /* XXX DEAD */ NumNick(acptr), me.name); exit_client(cptr, acptr, &me, "Nick collision (older nick overruled)"); } else { - sendto_highprot_butone(cptr, 10, /* Kill our old from outgoing servers */ + sendto_highprot_butone(cptr, 10, /* Kill our old from outgoing servers */ /* XXX DEAD */ "%s " TOK_KILL " %s%s :%s (%s <- %s (nick collision from same user@host))", NumServ(&me), NumNick(acptr), me.name, acptr->from->name, cptr->name); if (MyConnect(acptr) && IsServer(cptr) && Protocol(cptr) > 9) - sendto_one(cptr, + sendto_one(cptr, /* XXX DEAD */ "%s%s " TOK_QUIT " :Local kill by %s (Ghost: switched servers too fast)", NumNick(acptr), me.name); exit_client(cptr, acptr, &me, "Nick collision (You collided yourself)"); diff --git a/ircd/m_notice.c b/ircd/m_notice.c index 27b0982..2022972 100644 --- a/ircd/m_notice.c +++ b/ircd/m_notice.c @@ -121,10 +121,10 @@ int m_notice(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) sptr->flags &= ~FLAGS_TS8; if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, MSG_NOTICE); + return send_reply(sptr, ERR_NORECIPIENT, MSG_NOTICE); if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_reply(sptr, ERR_NOTEXTTOSEND); if (parv[1][0] == '@' && IsChannelPrefix(parv[1][1])) { parv[1]++; /* Get rid of '@' */ @@ -211,10 +211,10 @@ int mo_notice(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) sptr->flags &= ~FLAGS_TS8; if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, MSG_NOTICE); + return send_reply(sptr, ERR_NORECIPIENT, MSG_NOTICE); if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_reply(sptr, ERR_NOTEXTTOSEND); if (parv[1][0] == '@' && IsChannelPrefix(parv[1][1])) { parv[1]++; /* Get rid of '@' */ @@ -276,10 +276,10 @@ static int m_message(struct Client *cptr, struct Client *sptr, cmd = notice ? MSG_NOTICE : MSG_PRIVATE; if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, cmd); + return send_error_to_client(sptr, ERR_NORECIPIENT, cmd); /* XXX DEAD */ if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_error_to_client(sptr, ERR_NOTEXTTOSEND); /* XXX DEAD */ #if 0 @@ -305,12 +305,12 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (MyUser(sptr) && (chptr->mode.mode & MODE_NOPRIVMSGS) && check_target_limit(sptr, chptr, chptr->chname, 0)) continue; - sendmsgto_channel_butone(cptr, sptr, chptr, + sendmsgto_channel_butone(cptr, sptr, chptr, /* XXX DEAD */ parv[0], (notice ? TOK_NOTICE : TOK_PRIVATE), chptr->chname, parv[parc - 1]); } else if (!notice) - sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), + sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), /* XXX DEAD */ me.name, parv[0], chptr->chname); continue; } @@ -331,24 +331,24 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (!is_silenced(sptr, acptr)) { if (!notice && MyConnect(sptr) && acptr->user && acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), + sendto_one(sptr, rpl_str(RPL_AWAY), /* XXX DEAD */ me.name, parv[0], acptr->name, acptr->user->away); if (MyUser(acptr)) { add_target(acptr, sptr); - sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", /* XXX DEAD */ parv[0], cmd, acptr->name, parv[parc - 1]); } else - sendto_prefix_one(acptr, sptr, ":%s %s %s%s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s%s :%s", /* XXX DEAD */ parv[0], (notice ? TOK_NOTICE : TOK_PRIVATE), NumNick(acptr), parv[parc - 1]); } } else if (MyUser(sptr)) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ else - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ ":%s %d %s * :Target left UnderNet. Failed to deliver: [%.50s]", me.name, ERR_NOSUCHNICK, sptr->name, parv[parc - 1]); continue; @@ -365,7 +365,7 @@ static int m_message(struct Client *cptr, struct Client *sptr, { if (!(s = strrchr(nick, '.'))) { - sendto_one(sptr, err_str(ERR_NOTOPLEVEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOTOPLEVEL), me.name, parv[0], nick); /* XXX DEAD */ continue; } while (*++s) @@ -373,11 +373,11 @@ static int m_message(struct Client *cptr, struct Client *sptr, break; if (*s == '*' || *s == '?') { - sendto_one(sptr, err_str(ERR_WILDTOPLEVEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_WILDTOPLEVEL), me.name, parv[0], nick); /* XXX DEAD */ continue; } } - sendto_match_butone(IsServer(cptr) ? cptr : 0, + sendto_match_butone(IsServer(cptr) ? cptr : 0, /* XXX DEAD */ sptr, nick + 1, (*nick == '#') ? MATCH_HOST : MATCH_SERVER, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); continue; @@ -389,7 +389,7 @@ static int m_message(struct Client *cptr, struct Client *sptr, */ if (!IsMe(acptr)) { - sendto_one(acptr, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); + sendto_one(acptr, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); /* XXX DEAD */ continue; } @@ -412,15 +412,15 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (acptr) { if (!(is_silenced(sptr, acptr))) - sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", /* XXX DEAD */ parv[0], cmd, nick, parv[parc - 1]); continue; } } if (IsChannelName(nick)) - sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], nick); /* XXX DEAD */ else - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ } return 0; } diff --git a/ircd/m_oper.c b/ircd/m_oper.c index 12ebde2..8de3326 100644 --- a/ircd/m_oper.c +++ b/ircd/m_oper.c @@ -157,9 +157,9 @@ int m_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) ircd_ntoa((const char*) &cptr->ip), CONF_OPS); if (!aconf || IsIllegal(aconf)) { - send_error_to_client(sptr, ERR_NOOPERHOST); - sendto_realops("Failed OPER attempt by %s (%s@%s)", - parv[0], sptr->user->username, sptr->sockhost); + send_reply(sptr, ERR_NOOPERHOST); + sendto_opmask_butone(0, SNO_OLDREALOP, "Failed OPER attempt by %s (%s@%s)", + parv[0], sptr->user->username, sptr->sockhost); return 0; } assert(0 != (aconf->status & CONF_OPS)); @@ -168,9 +168,10 @@ int m_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) unsigned int old_mode = (sptr->flags & ALL_UMODES); if (ACR_OK != attach_conf(sptr, aconf)) { - send_error_to_client(sptr, ERR_NOOPERHOST); - sendto_realops("Failed OPER attempt by %s (%s@%s)", - parv[0], sptr->user->username, sptr->sockhost); + send_reply(sptr, ERR_NOOPERHOST); + sendto_opmask_butone(0, SNO_OLDREALOP, "Failed OPER attempt by %s " + "(%s@%s)", parv[0], sptr->user->username, + sptr->sockhost); return 0; } if (CONF_LOCOP == aconf->status) { @@ -192,25 +193,24 @@ int m_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) set_snomask(sptr, SNO_OPERDEFAULT, SNO_ADD); send_umode_out(cptr, sptr, old_mode); - sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); + send_reply(sptr, RPL_YOUREOPER); - sendto_ops("%s (%s@%s) is now operator (%c)", parv[0], - sptr->user->username, sptr->sockhost, - IsOper(sptr) ? 'O' : 'o'); + sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is now operator (%c)", + parv[0], sptr->user->username, sptr->sockhost, + IsOper(sptr) ? 'O' : 'o'); ircd_log(L_INFO, "OPER (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); #ifdef FNAME_OPERLOG if (IsUser(sptr)) write_log(FNAME_OPERLOG, - "%s OPER (%s) by (%s!%s@%s)\n", myctime(CurrentTime), - name, parv[0], sptr->user->username, sptr->sockhost); + "%s OPER (%s) by (%#C)\n", myctime(CurrentTime), name, sptr); #endif } else { - sendto_one(sptr, err_str(ERR_PASSWDMISMATCH), me.name, parv[0]); - sendto_realops("Failed OPER attempt by %s (%s@%s)", - parv[0], sptr->user->username, sptr->sockhost); + send_reply(sptr, ERR_PASSWDMISMATCH); + sendto_opmask_butone(0, SNO_OLDREALOP, "Failed OPER attempt by %s (%s@%s)", + parv[0], sptr->user->username, sptr->sockhost); } return 0; } @@ -228,7 +228,7 @@ int ms_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!IsServer(sptr) && !IsOper(sptr)) { ++UserStats.opers; sptr->flags |= FLAGS_OPER; - sendto_serv_butone(cptr, "%s%s " TOK_MODE " %s :+o", NumNick(sptr), parv[0]); + sendcmdto_serv_butone(sptr, CMD_MODE, cptr, "%s :+o", parv[0]); } return 0; } @@ -240,7 +240,7 @@ int mo_oper(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { assert(0 != cptr); assert(cptr == sptr); - sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); + send_reply(sptr, RPL_YOUREOPER); return 0; } @@ -272,12 +272,12 @@ int m_oper(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (IsServer(cptr) && !IsOper(sptr)) { ++UserStats.opers; sptr->flags |= FLAGS_OPER; - sendto_serv_butone(cptr, "%s%s " TOK_MODE " %s :+o", NumNick(sptr), parv[0]); + sendto_serv_butone(cptr, "%s%s " TOK_MODE " %s :+o", NumNick(sptr), parv[0]); /* XXX DEAD */ return 0; } else if (IsAnOper(sptr)) { if (MyConnect(sptr)) - sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); /* XXX DEAD */ return 0; } assert(cptr == sptr); @@ -287,8 +287,8 @@ int m_oper(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) ircd_ntoa((const char*) &cptr->ip), CONF_OPS); if (!aconf || IsIllegal(aconf)) { - sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); - sendto_realops("Failed OPER attempt by %s (%s@%s)", + sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); /* XXX DEAD */ + sendto_realops("Failed OPER attempt by %s (%s@%s)", /* XXX DEAD */ parv[0], sptr->user->username, sptr->sockhost); return 0; } @@ -316,8 +316,8 @@ int m_oper(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) int old = (sptr->flags & ALL_UMODES); if (ACR_OK != attach_conf(sptr, aconf)) { - sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); - sendto_realops("Failed OPER attempt by %s (%s@%s)", + sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); /* XXX DEAD */ + sendto_realops("Failed OPER attempt by %s (%s@%s)", /* XXX DEAD */ parv[0], sptr->user->username, sptr->sockhost); return 0; } @@ -336,13 +336,13 @@ int m_oper(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) ++UserStats.opers; } cptr->handler = OPER_HANDLER; - sendto_ops("%s (%s@%s) is now operator (%c)", parv[0], + sendto_ops("%s (%s@%s) is now operator (%c)", parv[0], /* XXX DEAD */ sptr->user->username, sptr->sockhost, IsOper(sptr) ? 'O' : 'o'); sptr->flags |= (FLAGS_WALLOP | FLAGS_SERVNOTICE | FLAGS_DEBUG); set_snomask(sptr, SNO_OPERDEFAULT, SNO_ADD); send_umode_out(cptr, sptr, old); - sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); + sendto_one(sptr, rpl_str(RPL_YOUREOPER), me.name, parv[0]); /* XXX DEAD */ ircd_log(L_INFO, "OPER (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); @@ -354,8 +354,8 @@ int m_oper(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif } else { - sendto_one(sptr, err_str(ERR_PASSWDMISMATCH), me.name, parv[0]); - sendto_realops("Failed OPER attempt by %s (%s@%s)", + sendto_one(sptr, err_str(ERR_PASSWDMISMATCH), me.name, parv[0]); /* XXX DEAD */ + sendto_realops("Failed OPER attempt by %s (%s@%s)", /* XXX DEAD */ parv[0], sptr->user->username, sptr->sockhost); } return 0; diff --git a/ircd/m_opmode.c b/ircd/m_opmode.c index c67eb02..fb4d524 100644 --- a/ircd/m_opmode.c +++ b/ircd/m_opmode.c @@ -116,7 +116,7 @@ int ms_opmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) return 0; if ('#' != *parv[1] || !(chptr = FindChannel(parv[1]))) - return send_error_to_client(sptr, ERR_NOSUCHCHANNEL, parv[1]); + return send_reply(sptr, ERR_NOSUCHCHANNEL, parv[1]); modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send MODE to channel */ @@ -141,7 +141,7 @@ int ms_opmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int mo_opmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { #ifndef CONFIG_OPERCMDS - return send_error_to_client(sptr, ERR_DISABLED, "OPMODE"); + return send_reply(sptr, ERR_DISABLED, "OPMODE"); #else struct Channel *chptr = 0; struct ModeBuf mbuf; @@ -153,10 +153,10 @@ int mo_opmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) clean_channelname(parv[1]); if (('#' != *parv[1] && '&' != *parv[1]) || !(chptr = FindChannel(parv[1]))) - return send_error_to_client(sptr, ERR_NOSUCHCHANNEL, parv[1]); + return send_reply(sptr, ERR_NOSUCHCHANNEL, parv[1]); if (!(member = find_member_link(chptr, sptr))) - return send_error_to_client(sptr, ERR_NOTONCHANNEL, chptr->chname); + return send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname); modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send MODE to channel */ diff --git a/ircd/m_pass.c b/ircd/m_pass.c index 50870b2..2087118 100644 --- a/ircd/m_pass.c +++ b/ircd/m_pass.c @@ -128,7 +128,7 @@ int m_pass(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!MyConnect(sptr) || (!IsUnknown(cptr) && !IsHandshake(cptr))) { - sendto_one(cptr, err_str(ERR_ALREADYREGISTRED), me.name, parv[0]); + sendto_one(cptr, err_str(ERR_ALREADYREGISTRED), me.name, parv[0]); /* XXX DEAD */ return 0; } ircd_strncpy(cptr->passwd, password, PASSWDLEN); diff --git a/ircd/m_ping.c b/ircd/m_ping.c index 751c174..a267b6e 100644 --- a/ircd/m_ping.c +++ b/ircd/m_ping.c @@ -166,21 +166,15 @@ int m_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(cptr == sptr); if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NOORIGIN); + return send_reply(sptr, ERR_NOORIGIN); destination = parv[2]; /* Will get NULL or pointer (parc >= 2!!) */ if (!EmptyString(destination) && 0 != ircd_strcmp(destination, me.name)) { if ((acptr = FindServer(destination))) - /* - * NOTE: can't send the origin string to servers, since this is a client, - * we could get garbage, and the link between us and the pingee wouldn't - * know who to send it to. - * sendto_one(acptr, "%s%s PING %s :%s", NumNick(sptr), parv[1], destination); - */ - sendto_one(acptr, "%s%s " TOK_PING " %s :%s", NumNick(sptr), sptr->name, destination); + sendcmdto_one(sptr, CMD_PING, acptr, "%C :%s", sptr, destination); else - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, sptr->name, destination); + send_reply(sptr, ERR_NOSUCHSERVER, destination); } else { /* @@ -196,7 +190,7 @@ int m_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (strlen(origin) > 64) origin[64] = '\0'; - sendto_one(sptr, ":%s PONG %s :%s", me.name, me.name, origin); + sendcmdto_one(&me, CMD_PONG, sptr, "%C :%s", &me, origin); } return 0; } @@ -228,7 +222,7 @@ int ms_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * don't bother sending the error back */ #if 0 - sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); /* XXX DEAD */ #endif return 0; } @@ -240,19 +234,13 @@ int ms_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* * Servers can just forward the origin */ - if (IsServer(sptr)) - /* - * servers don't normally send pings to remote servers - */ - sendto_one(acptr, "%s " TOK_PING " %s :%s", NumServ(sptr), origin, destination); - else - sendto_one(acptr, "%s%s " TOK_PING " %s :%s", NumNick(sptr), origin, destination); + sendcmdto_one(sptr, CMD_PING, acptr, "%s :%s", origin, destination); } else { /* * this can happen if server split before the ping got here */ - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, sptr->name, destination); + send_reply(sptr, ERR_NOSUCHSERVER, destination); } } else { @@ -261,7 +249,7 @@ int ms_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * NOTE: sptr is never local so if pong handles numerics everywhere we * could send a numeric here. */ - sendto_one(sptr, "%s " TOK_PONG " %s :%s", NumServ(&me), me.name, origin); + sendcmdto_one(&me, CMD_PONG, sptr, "%C :%s", &me, origin); } return 0; } @@ -282,7 +270,7 @@ int m_ping(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc < 2 || *parv[1] == '\0') { - sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); /* XXX DEAD */ return 0; } origin = parv[1]; @@ -295,16 +283,16 @@ int m_ping(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!EmptyString(destination) && 0 != ircd_strcmp(destination, me.name) != 0) { if ((acptr = FindServer(destination))) - sendto_one(acptr, ":%s PING %s :%s", parv[0], origin, destination); + sendto_one(acptr, ":%s PING %s :%s", parv[0], origin, destination); /* XXX DEAD */ else { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), + sendto_one(sptr, err_str(ERR_NOSUCHSERVER), /* XXX DEAD */ me.name, parv[0], destination); return 0; } } else - sendto_one(sptr, ":%s PONG %s :%s", me.name, me.name, origin); + sendto_one(sptr, ":%s PONG %s :%s", me.name, me.name, origin); /* XXX DEAD */ return 0; } #endif diff --git a/ircd/m_pong.c b/ircd/m_pong.c index 40f9b18..bbe4d53 100644 --- a/ircd/m_pong.c +++ b/ircd/m_pong.c @@ -122,7 +122,7 @@ int ms_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* * ignore there is nothing the server sending it can do about it */ - sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); /* XXX DEAD */ #endif return 0; } @@ -223,7 +223,7 @@ int m_pong(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) return register_user(cptr, sptr, sptr->name, sptr->user->username); } else - sendto_one(sptr, ":%s %d %s :To connect, type /QUOTE PONG %u", + sendto_one(sptr, ":%s %d %s :To connect, type /QUOTE PONG %u", /* XXX DEAD */ me.name, ERR_BADPING, sptr->name, sptr->cookie); return 0; @@ -231,7 +231,7 @@ int m_pong(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc < 2 || *parv[1] == '\0') { - sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOORIGIN), me.name, parv[0]); /* XXX DEAD */ return 0; } @@ -243,10 +243,10 @@ int m_pong(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!EmptyString(destination) && 0 != ircd_strcmp(destination, me.name)) { if ((acptr = FindClient(destination))) - sendto_one(acptr, ":%s PONG %s %s", parv[0], origin, destination); + sendto_one(acptr, ":%s PONG %s %s", parv[0], origin, destination); /* XXX DEAD */ else { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), + sendto_one(sptr, err_str(ERR_NOSUCHSERVER), /* XXX DEAD */ me.name, parv[0], destination); return 0; } diff --git a/ircd/m_privmsg.c b/ircd/m_privmsg.c index 3a6f059..fd41623 100644 --- a/ircd/m_privmsg.c +++ b/ircd/m_privmsg.c @@ -123,10 +123,10 @@ int m_privmsg(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, MSG_PRIVATE); + return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE); if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_reply(sptr, ERR_NOTEXTTOSEND); count = unique_name_vector(parv[1], ',', vector, MAXTARGETS); @@ -214,10 +214,10 @@ int mo_privmsg(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, MSG_PRIVATE); + return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE); if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_reply(sptr, ERR_NOTEXTTOSEND); count = unique_name_vector(parv[1], ',', vector, MAXTARGETS); @@ -274,10 +274,10 @@ static int m_message(struct Client *cptr, struct Client *sptr, cmd = notice ? MSG_NOTICE : MSG_PRIVATE; if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, cmd); + return send_error_to_client(sptr, ERR_NORECIPIENT, cmd); /* XXX DEAD */ if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_error_to_client(sptr, ERR_NOTEXTTOSEND); /* XXX DEAD */ #if 0 @@ -303,12 +303,12 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (MyUser(sptr) && (chptr->mode.mode & MODE_NOPRIVMSGS) && check_target_limit(sptr, chptr, chptr->chname, 0)) continue; - sendmsgto_channel_butone(cptr, sptr, chptr, + sendmsgto_channel_butone(cptr, sptr, chptr, /* XXX DEAD */ parv[0], (notice ? TOK_NOTICE : TOK_PRIVATE), chptr->chname, parv[parc - 1]); } else if (!notice) - sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), + sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), /* XXX DEAD */ me.name, parv[0], chptr->chname); continue; } @@ -329,24 +329,24 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (!is_silenced(sptr, acptr)) { if (!notice && MyConnect(sptr) && acptr->user && acptr->user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), + sendto_one(sptr, rpl_str(RPL_AWAY), /* XXX DEAD */ me.name, parv[0], acptr->name, acptr->user->away); if (MyUser(acptr)) { add_target(acptr, sptr); - sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", /* XXX DEAD */ parv[0], cmd, acptr->name, parv[parc - 1]); } else - sendto_prefix_one(acptr, sptr, ":%s %s %s%s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s%s :%s", /* XXX DEAD */ parv[0], (notice ? TOK_NOTICE : TOK_PRIVATE), NumNick(acptr), parv[parc - 1]); } } else if (MyUser(sptr)) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ else - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ ":%s %d %s * :Target left UnderNet. Failed to deliver: [%.50s]", me.name, ERR_NOSUCHNICK, sptr->name, parv[parc - 1]); continue; @@ -363,7 +363,7 @@ static int m_message(struct Client *cptr, struct Client *sptr, { if (!(s = strrchr(nick, '.'))) { - sendto_one(sptr, err_str(ERR_NOTOPLEVEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOTOPLEVEL), me.name, parv[0], nick); /* XXX DEAD */ continue; } while (*++s) @@ -371,11 +371,11 @@ static int m_message(struct Client *cptr, struct Client *sptr, break; if (*s == '*' || *s == '?') { - sendto_one(sptr, err_str(ERR_WILDTOPLEVEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_WILDTOPLEVEL), me.name, parv[0], nick); /* XXX DEAD */ continue; } } - sendto_match_butone(IsServer(cptr) ? cptr : 0, + sendto_match_butone(IsServer(cptr) ? cptr : 0, /* XXX DEAD */ sptr, nick + 1, (*nick == '#') ? MATCH_HOST : MATCH_SERVER, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); continue; @@ -387,7 +387,7 @@ static int m_message(struct Client *cptr, struct Client *sptr, */ if (!IsMe(acptr)) { - sendto_one(acptr, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); + sendto_one(acptr, ":%s %s %s :%s", parv[0], cmd, nick, parv[parc - 1]); /* XXX DEAD */ continue; } @@ -410,15 +410,15 @@ static int m_message(struct Client *cptr, struct Client *sptr, if (acptr) { if (!(is_silenced(sptr, acptr))) - sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", + sendto_prefix_one(acptr, sptr, ":%s %s %s :%s", /* XXX DEAD */ parv[0], cmd, nick, parv[parc - 1]); continue; } } if (IsChannelName(nick)) - sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], nick); /* XXX DEAD */ else - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ } return 0; } diff --git a/ircd/m_rehash.c b/ircd/m_rehash.c index 000f94b..24055ea 100644 --- a/ircd/m_rehash.c +++ b/ircd/m_rehash.c @@ -114,11 +114,13 @@ int mo_rehash(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif #endif { + send_reply(sptr, ERR_NOPRIVILEGES); sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } - sendto_one(sptr, rpl_str(RPL_REHASHING), me.name, parv[0], configfile); - sendto_ops("%s is rehashing Server config file", parv[0]); + send_reply(sptr, RPL_REHASHING, configfile); + sendto_opmask_butone(0, SNO_OLDSNO, "%C is rehashing Server config file", + sptr); ircd_log(L_INFO, "REHASH From %s\n", get_client_name(sptr, HIDE_IP)); return rehash(cptr, (parc > 1) ? ((*parv[1] == 'q') ? 2 : 0) : 0); #endif /* defined(OPER_REHASH) || defined(LOCOP_REHASH) */ @@ -142,11 +144,11 @@ int m_rehash(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif #endif { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } - sendto_one(sptr, rpl_str(RPL_REHASHING), me.name, parv[0], configfile); - sendto_ops("%s is rehashing Server config file", parv[0]); + sendto_one(sptr, rpl_str(RPL_REHASHING), me.name, parv[0], configfile); /* XXX DEAD */ + sendto_ops("%s is rehashing Server config file", parv[0]); /* XXX DEAD */ ircd_log(L_INFO, "REHASH From %s\n", get_client_name(sptr, HIDE_IP)); return rehash(cptr, (parc > 1) ? ((*parv[1] == 'q') ? 2 : 0) : 0); } diff --git a/ircd/m_restart.c b/ircd/m_restart.c index 290dc98..11d71e9 100644 --- a/ircd/m_restart.c +++ b/ircd/m_restart.c @@ -114,7 +114,7 @@ int mo_restart(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif #endif { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + send_reply(sptr, ERR_NOPRIVILEGES); return 0; } ircd_log(L_NOTICE, "Server RESTART by %s\n", get_client_name(sptr, HIDE_IP)); @@ -143,7 +143,7 @@ int m_restart(struct Client *cptr, struct Client *sptr, int parc, #endif #endif { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } ircd_log(L_NOTICE, "Server RESTART by %s\n", get_client_name(sptr, HIDE_IP)); diff --git a/ircd/m_settime.c b/ircd/m_settime.c index bc55865..a214efb 100644 --- a/ircd/m_settime.c +++ b/ircd/m_settime.c @@ -131,7 +131,7 @@ int ms_settime(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (t < OLDEST_TS || dt < -9000000) { - sendto_one(sptr, ":%s NOTICE %s :SETTIME: Bad value", me.name, parv[0]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :SETTIME: Bad value", sptr); return 0; } @@ -143,46 +143,37 @@ int ms_settime(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif for (lp = me.serv->down; lp; lp = lp->next) if (cptr != lp->value.cptr && DBufLength(&lp->value.cptr->sendQ) < 8000) - sendto_one(lp->value.cptr, ":%s SETTIME %s", parv[0], parv[1]); + sendcmdto_one(sptr, CMD_NOTICE, lp->value.cptr, "%s", parv[1]); } else { sprintf_irc(tbuf, TIME_T_FMT, TStime()); parv[1] = tbuf; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_SETTIME " %s %s", 2, parc, parv) != + if (hunt_server_cmd(sptr, CMD_SETTIME, cptr, 1, "%s %C", 2, parc, parv) != HUNTED_ISME) return 0; } #ifdef RELIABLE_CLOCK if ((dt > 600) || (dt < -600)) - sendto_serv_butone(0, ":%s " TOK_WALLOPS " :Bad SETTIME from %s: " TIME_T_FMT, - me.name, sptr->name, t); + sendcmdto_serv_butone(&me, CMD_WALLOPS, 0, ":Bad SETTIME from %s: %Tu", + sptr->name, t); if (IsUser(sptr)) { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is not set %ld seconds %s : " - "RELIABLE_CLOCK is defined", me.name, parv[0], - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); - else - sendto_one(sptr, "%s NOTICE %s%s :clock is not set %ld seconds %s : " - "RELIABLE_CLOCK is defined", NumServ(&me), NumNick(sptr), - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :clock is not set %ld seconds %s " + ": RELIABLE_CLOCK is defined", sptr, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); } #else - sendto_ops("SETTIME from %s, clock is set %ld seconds %s", - sptr->name, (dt < 0) ? -dt : dt, - (dt < 0) ? "forwards" : "backwards"); + sendto_opmask_butone(0, SNO_OLDSNO, "SETTIME from %s, clock is set %ld " + "seconds %s", sptr->name, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); TSoffset -= dt; if (IsUser(sptr)) { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is set %ld seconds %s", me.name, - parv[0], (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); - else - sendto_one(sptr, "%s NOTICE %s%s :clock is set %ld seconds %s", - NumServ(&me), NumNick(sptr), - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :clock is set %ld seconds %s", + sptr, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); } #endif return 0; @@ -216,7 +207,7 @@ int mo_settime(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (t < OLDEST_TS || dt < -9000000) { - sendto_one(sptr, ":%s NOTICE %s :SETTIME: Bad value", me.name, parv[0]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :SETTIME: Bad value", sptr); return 0; } @@ -228,46 +219,37 @@ int mo_settime(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) #endif for (lp = me.serv->down; lp; lp = lp->next) if (cptr != lp->value.cptr && DBufLength(&lp->value.cptr->sendQ) < 8000) - sendto_one(lp->value.cptr, ":%s SETTIME %s", parv[0], parv[1]); + sendcmdto_one(sptr, CMD_SETTIME, lp->value.cptr, "%s", parv[1]); } else { sprintf_irc(tbuf, TIME_T_FMT, TStime()); parv[1] = tbuf; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_SETTIME " %s %s", 2, parc, parv) != + if (hunt_server_cmd(sptr, CMD_SETTIME, cptr, 1, "%s %C", 2, parc, parv) != HUNTED_ISME) return 0; } #ifdef RELIABLE_CLOCK if ((dt > 600) || (dt < -600)) - sendto_serv_butone(0, ":%s " TOK_WALLOPS " :Bad SETTIME from %s: " TIME_T_FMT, - me.name, sptr->name, t); + sendcmdto_serv_butone(&me, CMD_WALLOPS, 0, ":Bad SETTIME from %s: %Tu", + sptr->name, t); if (IsUser(sptr)) { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is not set %ld seconds %s : " - "RELIABLE_CLOCK is defined", me.name, parv[0], - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); - else - sendto_one(sptr, "%s NOTICE %s%s :clock is not set %ld seconds %s : " - "RELIABLE_CLOCK is defined", NumServ(&me), NumNick(sptr), - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :clock is not set %ld seconds %s " + ": RELIABLE_CLOCK is defined", sptr, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); } #else - sendto_ops("SETTIME from %s, clock is set %ld seconds %s", - sptr->name, (dt < 0) ? -dt : dt, - (dt < 0) ? "forwards" : "backwards"); + sendto_opmask_butone(0, SNO_OLDSNO, "SETTIME from %s, clock is set %ld " + "seconds %s", sptr->name, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); TSoffset -= dt; if (IsUser(sptr)) { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is set %ld seconds %s", me.name, - parv[0], (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); - else - sendto_one(sptr, "%s NOTICE %s%s :clock is set %ld seconds %s", - NumServ(&me), NumNick(sptr), - (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :clock is set %ld seconds %s", + sptr, (dt < 0) ? -dt : dt, + (dt < 0) ? "forwards" : "backwards"); } #endif return 0; @@ -303,7 +285,7 @@ int m_settime(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (t < OLDEST_TS || dt < -9000000) { - sendto_one(sptr, ":%s NOTICE %s :SETTIME: Bad value", me.name, parv[0]); + sendto_one(sptr, ":%s NOTICE %s :SETTIME: Bad value", me.name, parv[0]); /* XXX DEAD */ return 0; } @@ -315,44 +297,44 @@ int m_settime(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) #endif for (lp = me.serv->down; lp; lp = lp->next) if (cptr != lp->value.cptr && DBufLength(&lp->value.cptr->sendQ) < 8000) - sendto_one(lp->value.cptr, ":%s SETTIME %s", parv[0], parv[1]); + sendto_one(lp->value.cptr, ":%s SETTIME %s", parv[0], parv[1]); /* XXX DEAD */ } else { sprintf_irc(tbuf, TIME_T_FMT, TStime()); parv[1] = tbuf; - if (hunt_server(1, cptr, sptr, "%s%s " TOK_SETTIME " %s %s", 2, parc, parv) != + if (hunt_server(1, cptr, sptr, "%s%s " TOK_SETTIME " %s %s", 2, parc, parv) != /* XXX DEAD */ HUNTED_ISME) return 0; } #ifdef RELIABLE_CLOCK if ((dt > 600) || (dt < -600)) - sendto_serv_butone(0, ":%s " TOK_WALLOPS " :Bad SETTIME from %s: " TIME_T_FMT, + sendto_serv_butone(0, ":%s " TOK_WALLOPS " :Bad SETTIME from %s: " TIME_T_FMT, /* XXX DEAD */ me.name, sptr->name, t); if (IsUser(sptr)) { if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is not set %ld seconds %s : " + sendto_one(sptr, ":%s NOTICE %s :clock is not set %ld seconds %s : " /* XXX DEAD */ "RELIABLE_CLOCK is defined", me.name, parv[0], (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); else - sendto_one(sptr, "%s NOTICE %s%s :clock is not set %ld seconds %s : " + sendto_one(sptr, "%s NOTICE %s%s :clock is not set %ld seconds %s : " /* XXX DEAD */ "RELIABLE_CLOCK is defined", NumServ(&me), NumNick(sptr), (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); } #else - sendto_ops("SETTIME from %s, clock is set %ld seconds %s", + sendto_ops("SETTIME from %s, clock is set %ld seconds %s", /* XXX DEAD */ sptr->name, (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); TSoffset -= dt; if (IsUser(sptr)) { if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :clock is set %ld seconds %s", me.name, + sendto_one(sptr, ":%s NOTICE %s :clock is set %ld seconds %s", me.name, /* XXX DEAD */ parv[0], (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); else - sendto_one(sptr, "%s NOTICE %s%s :clock is set %ld seconds %s", + sendto_one(sptr, "%s NOTICE %s%s :clock is set %ld seconds %s", /* XXX DEAD */ NumServ(&me), NumNick(sptr), (dt < 0) ? -dt : dt, (dt < 0) ? "forwards" : "backwards"); } diff --git a/ircd/m_silence.c b/ircd/m_silence.c index 535c81b..25867e9 100644 --- a/ircd/m_silence.c +++ b/ircd/m_silence.c @@ -133,10 +133,8 @@ int m_silence(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!(acptr->user)) return 0; for (lp = acptr->user->silence; lp; lp = lp->next) - sendto_one(sptr, rpl_str(RPL_SILELIST), me.name, - sptr->name, acptr->name, lp->value.cp); - sendto_one(sptr, rpl_str(RPL_ENDOFSILELIST), me.name, sptr->name, - acptr->name); + send_reply(sptr, RPL_SILELIST, acptr->name, lp->value.cp); + send_reply(sptr, RPL_ENDOFSILELIST, acptr->name); return 0; } cp = parv[1]; @@ -144,15 +142,15 @@ int m_silence(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (c == '-' || c == '+') cp++; else if (!(strchr(cp, '@') || strchr(cp, '.') || strchr(cp, '!') || strchr(cp, '*'))) { - return send_error_to_client(sptr, ERR_NOSUCHNICK, parv[1]); + return send_reply(sptr, ERR_NOSUCHNICK, parv[1]); } else c = '+'; cp = pretty_mask(cp); if ((c == '-' && !del_silence(sptr, cp)) || (c != '-' && !add_silence(sptr, cp))) { - sendto_prefix_one(sptr, sptr, ":%s " MSG_SILENCE " %c%s", parv[0], c, cp); + sendcmdto_one(sptr, CMD_SILENCE, sptr, "%c%s", c, cp); if (c == '-') - sendto_serv_butone(0, "%s%s " TOK_SILENCE " * -%s", NumNick(sptr), cp); + sendcmdto_serv_butone(sptr, CMD_SILENCE, 0, " * -%s", cp); } return 0; } @@ -188,17 +186,12 @@ int ms_silence(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (*parv[2] == '-') { if (!del_silence(sptr, parv[2] + 1)) - sendto_serv_butone(cptr, ":%s SILENCE * %s", parv[0], parv[2]); + sendcmdto_serv_butone(sptr, CMD_SILENCE, cptr, "* %s", parv[2]); } else { add_silence(sptr, parv[2]); if (acptr && IsServer(acptr->from)) { - if (IsServer(acptr)) - sendto_one(acptr, ":%s SILENCE %s %s", - parv[0], NumServ(acptr), parv[2]); - else - sendto_one(acptr, ":%s SILENCE %s%s %s", - parv[0], NumNick(acptr), parv[2]); + sendcmdto_one(sptr, CMD_SILENCE, acptr, "%C %s", acptr, parv[2]); } } return 0; @@ -230,9 +223,9 @@ int m_silence(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!(acptr->user)) return 0; for (lp = acptr->user->silence; lp; lp = lp->next) - sendto_one(sptr, rpl_str(RPL_SILELIST), me.name, + sendto_one(sptr, rpl_str(RPL_SILELIST), me.name, /* XXX DEAD */ sptr->name, acptr->name, lp->value.cp); - sendto_one(sptr, rpl_str(RPL_ENDOFSILELIST), me.name, sptr->name, + sendto_one(sptr, rpl_str(RPL_ENDOFSILELIST), me.name, sptr->name, /* XXX DEAD */ acptr->name); return 0; } @@ -243,7 +236,7 @@ int m_silence(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) else if (!(strchr(cp, '@') || strchr(cp, '.') || strchr(cp, '!') || strchr(cp, '*'))) { - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); /* XXX DEAD */ return -1; } else @@ -252,9 +245,9 @@ int m_silence(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if ((c == '-' && !del_silence(sptr, cp)) || (c != '-' && !add_silence(sptr, cp))) { - sendto_prefix_one(sptr, sptr, ":%s SILENCE %c%s", parv[0], c, cp); + sendto_prefix_one(sptr, sptr, ":%s SILENCE %c%s", parv[0], c, cp); /* XXX DEAD */ if (c == '-') - sendto_serv_butone(0, ":%s SILENCE * -%s", sptr->name, cp); + sendto_serv_butone(0, ":%s SILENCE * -%s", sptr->name, cp); /* XXX DEAD */ } } else if (parc < 3 || *parv[2] == '\0') @@ -270,7 +263,7 @@ int m_silence(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (*parv[2] == '-') { if (!del_silence(sptr, parv[2] + 1)) - sendto_serv_butone(cptr, ":%s SILENCE * %s", parv[0], parv[2]); + sendto_serv_butone(cptr, ":%s SILENCE * %s", parv[0], parv[2]); /* XXX DEAD */ } else { @@ -278,10 +271,10 @@ int m_silence(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (acptr && IsServer(acptr->from)) { if (IsServer(acptr)) - sendto_one(acptr, ":%s SILENCE %s %s", + sendto_one(acptr, ":%s SILENCE %s %s", /* XXX DEAD */ parv[0], NumServ(acptr), parv[2]); else - sendto_one(acptr, ":%s SILENCE %s%s %s", + sendto_one(acptr, ":%s SILENCE %s%s %s", /* XXX DEAD */ parv[0], NumNick(acptr), parv[2]); } } diff --git a/ircd/m_squit.c b/ircd/m_squit.c index f28015d..2d46d8c 100644 --- a/ircd/m_squit.c +++ b/ircd/m_squit.c @@ -143,7 +143,7 @@ int mo_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* Not found? Bugger. */ if (!acptr || IsMe(acptr)) - return send_error_to_client(sptr, ERR_NOSUCHSERVER, server); + return send_reply(sptr, ERR_NOSUCHSERVER, server); /* * Look for a matching server that is closer, @@ -158,7 +158,7 @@ int mo_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* Disallow local opers to squit remote servers */ if (IsLocOp(sptr) && !MyConnect(acptr)) - return send_error_to_client(sptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); return exit_client(cptr, acptr, sptr, comment); } diff --git a/ircd/m_time.c b/ircd/m_time.c index 7cba40d..c7d3561 100644 --- a/ircd/m_time.c +++ b/ircd/m_time.c @@ -108,11 +108,11 @@ */ int m_time(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { - if (hunt_server(0, cptr, sptr, "%s%s " TOK_TIME " :%s", 1, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_TIME, cptr, 0, ":%C", 1, parc, parv) != + HUNTED_ISME) return 0; - sendto_one(sptr, rpl_str(RPL_TIME), me.name, - parv[0], me.name, TStime(), TSoffset, date((long)0)); + send_reply(sptr, RPL_TIME, me.name, TStime(), TSoffset, date((long)0)); return 0; } @@ -125,8 +125,8 @@ int m_time(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ int m_time(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { - if (hunt_server(0, cptr, sptr, "%s%s TIME :%s", 1, parc, parv) == HUNTED_ISME) - sendto_one(sptr, rpl_str(RPL_TIME), me.name, + if (hunt_server(0, cptr, sptr, "%s%s TIME :%s", 1, parc, parv) == HUNTED_ISME) /* XXX DEAD */ + sendto_one(sptr, rpl_str(RPL_TIME), me.name, /* XXX DEAD */ parv[0], me.name, TStime(), TSoffset, date((long)0)); return 0; } diff --git a/ircd/m_topic.c b/ircd/m_topic.c index a7e8368..2d963d5 100644 --- a/ircd/m_topic.c +++ b/ircd/m_topic.c @@ -124,14 +124,13 @@ int m_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!IsChannelName(name) || !(chptr = FindChannel(name)) || ((topic || SecretChannel(chptr)) && !find_channel_member(sptr, chptr))) { - sendto_one(sptr, err_str(chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), - me.name, parv[0], chptr ? chptr->chname : name); + send_reply(sptr, (chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), + chptr ? chptr->chname : name); continue; } if (IsModelessChannel(name)) { - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, parv[0], - chptr->chname); + send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); continue; } if (IsLocalChannel(name) && !MyUser(sptr)) @@ -140,14 +139,12 @@ int m_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!topic) /* only asking for topic */ { if (chptr->topic[0] == '\0') - sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname); + send_reply(sptr, RPL_NOTOPIC, chptr->chname); else { - sendto_one(sptr, rpl_str(RPL_TOPIC), - me.name, parv[0], chptr->chname, chptr->topic); - sendto_one(sptr, rpl_str(RPL_TOPICWHOTIME), - me.name, parv[0], chptr->chname, - chptr->topic_nick, chptr->topic_time); + send_reply(sptr, RPL_TOPIC, chptr->chname, chptr->topic); + send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, + chptr->topic_time); } } else if (((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || @@ -157,14 +154,13 @@ int m_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) ircd_strncpy(chptr->topic, topic, TOPICLEN); ircd_strncpy(chptr->topic_nick, sptr->name, NICKLEN); chptr->topic_time = CurrentTime; - sendto_serv_butone(cptr, "%s%s " TOK_TOPIC " %s :%s", - NumNick(sptr), chptr->chname, chptr->topic); - sendto_channel_butserv(chptr, sptr, ":%s TOPIC %s :%s", - parv[0], chptr->chname, chptr->topic); + sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H :%s", chptr, + chptr->topic); + sendcmdto_channel_butserv(sptr, CMD_TOPIC, chptr, "%H :%s", chptr, + chptr->topic); } else - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), - me.name, parv[0], chptr->chname); + send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); } return 0; } @@ -193,14 +189,13 @@ int ms_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!IsChannelName(name) || !(chptr = FindChannel(name)) || ((topic || SecretChannel(chptr)) && !find_channel_member(sptr, chptr))) { - sendto_one(sptr, err_str(chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), - me.name, parv[0], chptr ? chptr->chname : name); + send_reply(sptr, (chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), + chptr ? chptr->chname : name); continue; } if (IsModelessChannel(name)) { - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, parv[0], - chptr->chname); + send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); continue; } if (IsLocalChannel(name) && !MyUser(sptr)) @@ -209,14 +204,12 @@ int ms_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!topic) /* only asking for topic */ { if (chptr->topic[0] == '\0') - sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname); + send_reply(sptr, RPL_NOTOPIC, chptr->chname); else { - sendto_one(sptr, rpl_str(RPL_TOPIC), - me.name, parv[0], chptr->chname, chptr->topic); - sendto_one(sptr, rpl_str(RPL_TOPICWHOTIME), - me.name, parv[0], chptr->chname, - chptr->topic_nick, chptr->topic_time); + send_reply(sptr, RPL_TOPIC, chptr->chname, chptr->topic); + send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, + chptr->topic_time); } } else if (((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || @@ -226,14 +219,13 @@ int ms_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) ircd_strncpy(chptr->topic, topic, TOPICLEN); ircd_strncpy(chptr->topic_nick, sptr->name, NICKLEN); chptr->topic_time = CurrentTime; - sendto_serv_butone(cptr, "%s%s " TOK_TOPIC " %s :%s", - NumNick(sptr), chptr->chname, chptr->topic); - sendto_channel_butserv(chptr, sptr, ":%s TOPIC %s :%s", - parv[0], chptr->chname, chptr->topic); + sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H :%s", chptr, + chptr->topic); + sendcmdto_channel_butserv(sptr, CMD_TOPIC, chptr, "%H :%s", chptr, + chptr->topic); } else - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), - me.name, parv[0], chptr->chname); + send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); } return 0; } @@ -264,13 +256,13 @@ int m_topic(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!IsChannelName(name) || !(chptr = FindChannel(name)) || ((topic || SecretChannel(chptr)) && !find_channel_member(sptr, chptr))) { - sendto_one(sptr, err_str(chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), + sendto_one(sptr, err_str(chptr ? ERR_NOTONCHANNEL : ERR_NOSUCHCHANNEL), /* XXX DEAD */ me.name, parv[0], chptr ? chptr->chname : name); continue; } if (IsModelessChannel(name)) { - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, parv[0], + sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, parv[0], /* XXX DEAD */ chptr->chname); continue; } @@ -280,12 +272,12 @@ int m_topic(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!topic) /* only asking for topic */ { if (chptr->topic[0] == '\0') - sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname); + sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname); /* XXX DEAD */ else { - sendto_one(sptr, rpl_str(RPL_TOPIC), + sendto_one(sptr, rpl_str(RPL_TOPIC), /* XXX DEAD */ me.name, parv[0], chptr->chname, chptr->topic); - sendto_one(sptr, rpl_str(RPL_TOPICWHOTIME), + sendto_one(sptr, rpl_str(RPL_TOPICWHOTIME), /* XXX DEAD */ me.name, parv[0], chptr->chname, chptr->topic_nick, chptr->topic_time); } @@ -297,13 +289,13 @@ int m_topic(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) ircd_strncpy(chptr->topic, topic, TOPICLEN); ircd_strncpy(chptr->topic_nick, sptr->name, NICKLEN); chptr->topic_time = CurrentTime; - sendto_serv_butone(cptr, "%s%s " TOK_TOPIC " %s :%s", + sendto_serv_butone(cptr, "%s%s " TOK_TOPIC " %s :%s", /* XXX DEAD */ NumNick(sptr), chptr->chname, chptr->topic); - sendto_channel_butserv(chptr, sptr, ":%s TOPIC %s :%s", + sendto_channel_butserv(chptr, sptr, ":%s TOPIC %s :%s", /* XXX DEAD */ parv[0], chptr->chname, chptr->topic); } else - sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), + sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), /* XXX DEAD */ me.name, parv[0], chptr->chname); } return 0; diff --git a/ircd/m_trace.c b/ircd/m_trace.c index 601892f..7d3e7ec 100644 --- a/ircd/m_trace.c +++ b/ircd/m_trace.c @@ -122,62 +122,55 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int doall, link_s[MAXCONNECTIONS], link_u[MAXCONNECTIONS]; int cnt = 0, wilds, dow; - if (parc < 2 || BadPtr(parv[1])) - { + if (parc < 2 || BadPtr(parv[1])) { /* just "TRACE" without parameters. Must be from local client */ parc = 1; acptr = &me; tname = me.name; i = HUNTED_ISME; - } - else if (parc < 3 || BadPtr(parv[2])) - { + } else if (parc < 3 || BadPtr(parv[2])) { /* No target specified. Make one before propagating. */ parc = 2; tname = parv[1]; if ((acptr = find_match_server(parv[1])) || - ((acptr = FindClient(parv[1])) && !MyUser(acptr))) - { + ((acptr = FindClient(parv[1])) && !MyUser(acptr))) { if (IsUser(acptr)) parv[2] = acptr->user->server->name; else parv[2] = acptr->name; parc = 3; parv[3] = 0; - if ((i = hunt_server(IsServer(acptr), cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, IsServer(acptr), + "%s :%C", 2, parc, parv)) == HUNTED_NOSUCH) return 0; - } - else + } else i = HUNTED_ISME; - } - else - { + } else { /* Got "TRACE :" */ parc = 3; if (MyUser(sptr) || Protocol(cptr) < 10) acptr = find_match_server(parv[2]); else acptr = FindNServer(parv[2]); - if ((i = hunt_server(0, cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, 0, "%s :%C", 2, parc, + parv)) == HUNTED_NOSUCH) return 0; tname = parv[1]; } - if (i == HUNTED_PASS) - { + if (i == HUNTED_PASS) { if (!acptr) acptr = next_client(GlobalClientList, tname); else acptr = acptr->from; - sendto_one(sptr, rpl_str(RPL_TRACELINK), me.name, parv[0], + send_reply(sptr, RPL_TRACELINK, #ifndef GODMODE - version, debugmode, tname, acptr ? acptr->from->name : ""); + version, debugmode, tname, acptr ? acptr->from->name : "" #else /* GODMODE */ version, debugmode, tname, acptr ? acptr->from->name : "", - (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0); + (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0 #endif /* GODMODE */ + ); /* I really could do without GODMODE */ return 0; } @@ -192,8 +185,7 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) for (i = 0; i < MAXCONNECTIONS; i++) link_s[i] = 0, link_u[i] = 0; - if (doall) - { + if (doall) { for (acptr = GlobalClientList; acptr; acptr = acptr->next) { if (IsUser(acptr)) link_u[acptr->from->fd]++; @@ -204,8 +196,7 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* report all direct connections */ - for (i = 0; i <= HighestFd; i++) - { + for (i = 0; i <= HighestFd; i++) { unsigned int conClass; if (!(acptr = LocalClientArray[i])) /* Local Connection? */ @@ -220,45 +211,40 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) conClass = get_client_class(acptr); - switch (acptr->status) - { + switch (acptr->status) { case STAT_CONNECTING: - sendto_one(sptr, rpl_str(RPL_TRACECONNECTING), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACECONNECTING, conClass, acptr->name); cnt++; break; case STAT_HANDSHAKE: - sendto_one(sptr, rpl_str(RPL_TRACEHANDSHAKE), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACEHANDSHAKE, conClass, acptr->name); cnt++; break; case STAT_ME: break; case STAT_UNKNOWN: case STAT_UNKNOWN_USER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, + get_client_name(acptr, HIDE_IP)); cnt++; break; case STAT_UNKNOWN_SERVER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, "Unknown Server"); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, "Unknown Server"); cnt++; break; case STAT_USER: /* Only opers see users if there is a wildcard but anyone can see all the opers. */ if ((IsAnOper(sptr) && (MyUser(sptr) || - !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) - { + !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) { if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_TRACEOPERATOR), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), - CurrentTime - acptr->lasttime); + send_reply(sptr, RPL_TRACEOPERATOR, conClass, + get_client_name(acptr, HIDE_IP), + CurrentTime - acptr->lasttime); else - sendto_one(sptr, rpl_str(RPL_TRACEUSER), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), - CurrentTime - acptr->lasttime); + send_reply(sptr, RPL_TRACEUSER, conClass, + get_client_name(acptr, HIDE_IP), + CurrentTime - acptr->lasttime); cnt++; } break; @@ -280,25 +266,22 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) case STAT_SERVER: if (acptr->serv->user) - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", acptr->serv->user->username, acptr->serv->user->host, CurrentTime - acptr->lasttime, CurrentTime - acptr->serv->timestamp); - else - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + else + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", "*", me.name, CurrentTime - acptr->lasttime, - CurrentTime - acptr->serv->timestamp); + CurrentTime - acptr->serv->timestamp); cnt++; break; default: /* We actually shouldn't come here, -msa */ - sendto_one(sptr, rpl_str(RPL_TRACENEWTYPE), me.name, parv[0], - get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACENEWTYPE, get_client_name(acptr, HIDE_IP)); cnt++; break; } @@ -307,20 +290,17 @@ int m_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * Add these lines to summarize the above which can get rather long * and messy when done remotely - Avalon */ - if (!IsAnOper(sptr) || !cnt) - { + if (!IsAnOper(sptr) || !cnt) { if (!cnt) /* let the user have some idea that its at the end of the trace */ - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], 0, link_s[me.fd], + send_reply(sptr, RPL_TRACESERVER, 0, link_s[me.fd], link_u[me.fd], "", *(me.serv->by) ? me.serv->by : "*", "*", me.name, 0, 0); return 0; } for (cltmp = FirstClass(); doall && cltmp; cltmp = NextClass(cltmp)) if (Links(cltmp) > 0) - sendto_one(sptr, rpl_str(RPL_TRACECLASS), me.name, - parv[0], ConClass(cltmp), Links(cltmp)); + send_reply(sptr, RPL_TRACECLASS, ConClass(cltmp), Links(cltmp)); return 0; } @@ -340,62 +320,56 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int doall, link_s[MAXCONNECTIONS], link_u[MAXCONNECTIONS]; int cnt = 0, wilds, dow; - if (parc < 2 || BadPtr(parv[1])) - { + if (parc < 2 || BadPtr(parv[1])) { /* just "TRACE" without parameters. Must be from local client */ parc = 1; acptr = &me; tname = me.name; i = HUNTED_ISME; - } - else if (parc < 3 || BadPtr(parv[2])) - { + } else if (parc < 3 || BadPtr(parv[2])) { /* No target specified. Make one before propagating. */ parc = 2; tname = parv[1]; if ((acptr = find_match_server(parv[1])) || - ((acptr = FindClient(parv[1])) && !MyUser(acptr))) - { + ((acptr = FindClient(parv[1])) && !MyUser(acptr))) { if (IsUser(acptr)) parv[2] = acptr->user->server->name; else parv[2] = acptr->name; parc = 3; parv[3] = 0; - if ((i = hunt_server(IsServer(acptr), cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, IsServer(acptr), + "%s :%C", 2, parc, parv)) == HUNTED_NOSUCH) return 0; - } - else + } else i = HUNTED_ISME; - } - else - { + } else { /* Got "TRACE :" */ parc = 3; if (MyUser(sptr) || Protocol(cptr) < 10) acptr = find_match_server(parv[2]); else acptr = FindNServer(parv[2]); - if ((i = hunt_server(0, cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, 0, "%s :%C", 2, parc, + parv)) == HUNTED_NOSUCH) return 0; tname = parv[1]; } - if (i == HUNTED_PASS) - { + if (i == HUNTED_PASS) { if (!acptr) acptr = next_client(GlobalClientList, tname); else acptr = acptr->from; - sendto_one(sptr, rpl_str(RPL_TRACELINK), me.name, parv[0], + send_reply(sptr, RPL_TRACELINK, #ifndef GODMODE - version, debugmode, tname, acptr ? acptr->from->name : ""); + version, debugmode, tname, acptr ? acptr->from->name : "" #else /* GODMODE */ version, debugmode, tname, acptr ? acptr->from->name : "", - (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0); + (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0 #endif /* GODMODE */ + ); /* I really could do without GODMODE */ return 0; } @@ -410,8 +384,7 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) for (i = 0; i < MAXCONNECTIONS; i++) link_s[i] = 0, link_u[i] = 0; - if (doall) - { + if (doall) { for (acptr = GlobalClientList; acptr; acptr = acptr->next) { if (IsUser(acptr)) link_u[acptr->from->fd]++; @@ -422,8 +395,7 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* report all direct connections */ - for (i = 0; i <= HighestFd; i++) - { + for (i = 0; i <= HighestFd; i++) { unsigned int conClass; if (!(acptr = LocalClientArray[i])) /* Local Connection? */ @@ -437,45 +409,40 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) continue; conClass = get_client_class(acptr); - switch (acptr->status) - { + switch (acptr->status) { case STAT_CONNECTING: - sendto_one(sptr, rpl_str(RPL_TRACECONNECTING), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACECONNECTING, conClass, acptr->name); cnt++; break; case STAT_HANDSHAKE: - sendto_one(sptr, rpl_str(RPL_TRACEHANDSHAKE), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACEHANDSHAKE, conClass, acptr->name); cnt++; break; case STAT_ME: break; case STAT_UNKNOWN: case STAT_UNKNOWN_USER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, + get_client_name(acptr, HIDE_IP)); cnt++; break; case STAT_UNKNOWN_SERVER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, "Unknown Server"); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, "Unknown Server"); cnt++; break; case STAT_USER: /* Only opers see users if there is a wildcard but anyone can see all the opers. */ if ((IsAnOper(sptr) && (MyUser(sptr) || - !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) - { + !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) { if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_TRACEOPERATOR), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), - CurrentTime - acptr->lasttime); + send_reply(sptr, RPL_TRACEOPERATOR, conClass, + get_client_name(acptr, HIDE_IP), + CurrentTime - acptr->lasttime); else - sendto_one(sptr, rpl_str(RPL_TRACEUSER), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), - CurrentTime - acptr->lasttime); + send_reply(sptr, RPL_TRACEUSER, conClass, + get_client_name(acptr, HIDE_IP), + CurrentTime - acptr->lasttime); cnt++; } break; @@ -497,16 +464,14 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) case STAT_SERVER: if (acptr->serv->user) - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", acptr->serv->user->username, acptr->serv->user->host, CurrentTime - acptr->lasttime, CurrentTime - acptr->serv->timestamp); else - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", "*", me.name, CurrentTime - acptr->lasttime, @@ -514,8 +479,7 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) cnt++; break; default: /* We actually shouldn't come here, -msa */ - sendto_one(sptr, rpl_str(RPL_TRACENEWTYPE), me.name, parv[0], - get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACENEWTYPE, get_client_name(acptr, HIDE_IP)); cnt++; break; } @@ -524,20 +488,17 @@ int ms_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * Add these lines to summarize the above which can get rather long * and messy when done remotely - Avalon */ - if (!IsAnOper(sptr) || !cnt) - { + if (!IsAnOper(sptr) || !cnt) { if (!cnt) /* let the user have some idea that its at the end of the trace */ - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], 0, link_s[me.fd], + send_reply(sptr, RPL_TRACESERVER, 0, link_s[me.fd], link_u[me.fd], "", *(me.serv->by) ? me.serv->by : "*", "*", me.name, 0, 0); return 0; } for (cltmp = FirstClass(); doall && cltmp; cltmp = NextClass(cltmp)) if (Links(cltmp) > 0) - sendto_one(sptr, rpl_str(RPL_TRACECLASS), me.name, - parv[0], ConClass(cltmp), Links(cltmp)); + send_reply(sptr, RPL_TRACECLASS, ConClass(cltmp), Links(cltmp)); return 0; } @@ -557,62 +518,55 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) int doall, link_s[MAXCONNECTIONS], link_u[MAXCONNECTIONS]; int cnt = 0, wilds, dow; - if (parc < 2 || BadPtr(parv[1])) - { + if (parc < 2 || BadPtr(parv[1])) { /* just "TRACE" without parameters. Must be from local client */ parc = 1; acptr = &me; tname = me.name; i = HUNTED_ISME; - } - else if (parc < 3 || BadPtr(parv[2])) - { + } else if (parc < 3 || BadPtr(parv[2])) { /* No target specified. Make one before propagating. */ parc = 2; tname = parv[1]; if ((acptr = find_match_server(parv[1])) || - ((acptr = FindClient(parv[1])) && !MyUser(acptr))) - { + ((acptr = FindClient(parv[1])) && !MyUser(acptr))) { if (IsUser(acptr)) parv[2] = acptr->user->server->name; else parv[2] = acptr->name; parc = 3; parv[3] = 0; - if ((i = hunt_server(IsServer(acptr), cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, IsServer(acptr), + "%s :%C", 2, parc, parv)) == HUNTED_NOSUCH) return 0; - } - else + } else i = HUNTED_ISME; - } - else - { + } else { /* Got "TRACE :" */ parc = 3; if (MyUser(sptr) || Protocol(cptr) < 10) acptr = find_match_server(parv[2]); else acptr = FindNServer(parv[2]); - if ((i = hunt_server(0, cptr, sptr, - "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + if ((i = hunt_server_cmd(sptr, CMD_TRACE, cptr, 0, "%s :%C", 2, parc, + parv)) == HUNTED_NOSUCH) return 0; tname = parv[1]; } - if (i == HUNTED_PASS) - { + if (i == HUNTED_PASS) { if (!acptr) acptr = next_client(GlobalClientList, tname); else acptr = acptr->from; - sendto_one(sptr, rpl_str(RPL_TRACELINK), me.name, parv[0], + send_reply(sptr, RPL_TRACELINK, #ifndef GODMODE - version, debugmode, tname, acptr ? acptr->from->name : ""); + version, debugmode, tname, acptr ? acptr->from->name : "" #else /* GODMODE */ version, debugmode, tname, acptr ? acptr->from->name : "", - (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0); + (acptr && acptr->from->serv) ? acptr->from->serv->timestamp : 0 #endif /* GODMODE */ + ); /* I really could do without GODMODE */ return 0; } @@ -627,8 +581,7 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) for (i = 0; i < MAXCONNECTIONS; i++) link_s[i] = 0, link_u[i] = 0; - if (doall) - { + if (doall) { for (acptr = GlobalClientList; acptr; acptr = acptr->next) { if (IsUser(acptr)) link_u[acptr->from->fd]++; @@ -639,8 +592,7 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* report all direct connections */ - for (i = 0; i <= HighestFd; i++) - { + for (i = 0; i <= HighestFd; i++) { unsigned int conClass; if (!(acptr = LocalClientArray[i])) /* Local Connection? */ @@ -654,44 +606,39 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) continue; conClass = get_client_class(acptr); - switch (acptr->status) - { + switch (acptr->status) { case STAT_CONNECTING: - sendto_one(sptr, rpl_str(RPL_TRACECONNECTING), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACECONNECTING, conClass, acptr->name); cnt++; break; case STAT_HANDSHAKE: - sendto_one(sptr, rpl_str(RPL_TRACEHANDSHAKE), - me.name, parv[0], conClass, acptr->name); + send_reply(sptr, RPL_TRACEHANDSHAKE, conClass, acptr->name); cnt++; break; case STAT_ME: break; case STAT_UNKNOWN: case STAT_UNKNOWN_USER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, + get_client_name(acptr, HIDE_IP)); cnt++; break; case STAT_UNKNOWN_SERVER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), - me.name, parv[0], conClass, "Unknown Server"); + send_reply(sptr, RPL_TRACEUNKNOWN, conClass, "Unknown Server"); cnt++; break; case STAT_USER: /* Only opers see users if there is a wildcard but anyone can see all the opers. */ if ((IsAnOper(sptr) && (MyUser(sptr) || - !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) - { + !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) { if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_TRACEOPERATOR), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), + send_reply(sptr, RPL_TRACEOPERATOR, conClass, + get_client_name(acptr, HIDE_IP), CurrentTime - acptr->lasttime); else - sendto_one(sptr, rpl_str(RPL_TRACEUSER), - me.name, parv[0], conClass, get_client_name(acptr, HIDE_IP), + send_reply(sptr, RPL_TRACEUSER, conClass, + get_client_name(acptr, HIDE_IP), CurrentTime - acptr->lasttime); cnt++; } @@ -714,16 +661,14 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) case STAT_SERVER: if (acptr->serv->user) - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", acptr->serv->user->username, acptr->serv->user->host, CurrentTime - acptr->lasttime, CurrentTime - acptr->serv->timestamp); else - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], conClass, link_s[i], + send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i], link_u[i], acptr->name, (*acptr->serv->by) ? acptr->serv->by : "*", "*", me.name, CurrentTime - acptr->lasttime, @@ -731,8 +676,7 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) cnt++; break; default: /* We actually shouldn't come here, -msa */ - sendto_one(sptr, rpl_str(RPL_TRACENEWTYPE), me.name, parv[0], - get_client_name(acptr, HIDE_IP)); + send_reply(sptr, RPL_TRACENEWTYPE, get_client_name(acptr, HIDE_IP)); cnt++; break; } @@ -741,20 +685,17 @@ int mo_trace(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * Add these lines to summarize the above which can get rather long * and messy when done remotely - Avalon */ - if (!IsAnOper(sptr) || !cnt) - { + if (!IsAnOper(sptr) || !cnt) { if (!cnt) /* let the user have some idea that its at the end of the trace */ - sendto_one(sptr, rpl_str(RPL_TRACESERVER), - me.name, parv[0], 0, link_s[me.fd], + send_reply(sptr, RPL_TRACESERVER, 0, link_s[me.fd], link_u[me.fd], "", *(me.serv->by) ? me.serv->by : "*", "*", me.name, 0, 0); return 0; } for (cltmp = FirstClass(); doall && cltmp; cltmp = NextClass(cltmp)) if (Links(cltmp) > 0) - sendto_one(sptr, rpl_str(RPL_TRACECLASS), me.name, - parv[0], ConClass(cltmp), Links(cltmp)); + send_reply(sptr, RPL_TRACECLASS, ConClass(cltmp), Links(cltmp)); return 0; } @@ -798,7 +739,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) parv[2] = acptr->name; parc = 3; parv[3] = 0; - if ((i = hunt_server(IsServer(acptr), cptr, sptr, + if ((i = hunt_server(IsServer(acptr), cptr, sptr, /* XXX DEAD */ "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) return 0; } @@ -813,7 +754,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) acptr = find_match_server(parv[2]); else acptr = FindNServer(parv[2]); - if ((i = hunt_server(0, cptr, sptr, + if ((i = hunt_server(0, cptr, sptr, /* XXX DEAD */ "%s%s " TOK_TRACE " %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) return 0; tname = parv[1]; @@ -825,7 +766,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) acptr = next_client(GlobalClientList, tname); else acptr = acptr->from; - sendto_one(sptr, rpl_str(RPL_TRACELINK), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_TRACELINK), me.name, parv[0], /* XXX DEAD */ #ifndef GODMODE version, debugmode, tname, acptr ? acptr->from->name : ""); #else /* GODMODE */ @@ -877,12 +818,12 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) switch (acptr->status) { case STAT_CONNECTING: - sendto_one(sptr, rpl_str(RPL_TRACECONNECTING), + sendto_one(sptr, rpl_str(RPL_TRACECONNECTING), /* XXX DEAD */ me.name, parv[0], conClass, name); cnt++; break; case STAT_HANDSHAKE: - sendto_one(sptr, rpl_str(RPL_TRACEHANDSHAKE), + sendto_one(sptr, rpl_str(RPL_TRACEHANDSHAKE), /* XXX DEAD */ me.name, parv[0], conClass, name); cnt++; break; @@ -891,7 +832,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) case STAT_UNKNOWN: case STAT_UNKNOWN_USER: case STAT_UNKNOWN_SERVER: - sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), + sendto_one(sptr, rpl_str(RPL_TRACEUNKNOWN), /* XXX DEAD */ me.name, parv[0], conClass, name); cnt++; break; @@ -902,10 +843,10 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) { if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_TRACEOPERATOR), + sendto_one(sptr, rpl_str(RPL_TRACEOPERATOR), /* XXX DEAD */ me.name, parv[0], conClass, name, CurrentTime - acptr->lasttime); else - sendto_one(sptr, rpl_str(RPL_TRACEUSER), + sendto_one(sptr, rpl_str(RPL_TRACEUSER), /* XXX DEAD */ me.name, parv[0], conClass, name, CurrentTime - acptr->lasttime); cnt++; } @@ -928,14 +869,14 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) case STAT_SERVER: if (acptr->serv->user) - sendto_one(sptr, rpl_str(RPL_TRACESERVER), + sendto_one(sptr, rpl_str(RPL_TRACESERVER), /* XXX DEAD */ me.name, parv[0], conClass, link_s[i], link_u[i], name, (*acptr->serv->by) ? acptr->serv->by : "*", acptr->serv->user->username, acptr->serv->user->host, CurrentTime - acptr->lasttime, CurrentTime - acptr->serv->timestamp); else - sendto_one(sptr, rpl_str(RPL_TRACESERVER), + sendto_one(sptr, rpl_str(RPL_TRACESERVER), /* XXX DEAD */ me.name, parv[0], conClass, link_s[i], link_u[i], name, (*acptr->serv->by) ? acptr->serv->by : "*", "*", me.name, CurrentTime - acptr->lasttime, @@ -943,7 +884,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) cnt++; break; default: /* We actually shouldn't come here, -msa */ - sendto_one(sptr, rpl_str(RPL_TRACENEWTYPE), me.name, parv[0], name); + sendto_one(sptr, rpl_str(RPL_TRACENEWTYPE), me.name, parv[0], name); /* XXX DEAD */ cnt++; break; } @@ -956,7 +897,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { if (!cnt) /* let the user have some idea that its at the end of the trace */ - sendto_one(sptr, rpl_str(RPL_TRACESERVER), + sendto_one(sptr, rpl_str(RPL_TRACESERVER), /* XXX DEAD */ me.name, parv[0], 0, link_s[me.fd], link_u[me.fd], "", *(me.serv->by) ? me.serv->by : "*", "*", me.name, 0, 0); @@ -964,7 +905,7 @@ int m_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) } for (cltmp = FirstClass(); doall && cltmp; cltmp = NextClass(cltmp)) if (Links(cltmp) > 0) - sendto_one(sptr, rpl_str(RPL_TRACECLASS), me.name, + sendto_one(sptr, rpl_str(RPL_TRACECLASS), me.name, /* XXX DEAD */ parv[0], ConClass(cltmp), Links(cltmp)); return 0; } diff --git a/ircd/m_uping.c b/ircd/m_uping.c index 132eef0..4fe7327 100644 --- a/ircd/m_uping.c +++ b/ircd/m_uping.c @@ -127,16 +127,17 @@ int ms_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(0 != sptr); if (!IsAnOper(sptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + send_reply(sptr, ERR_NOPRIVILEGES); return 0; } if (parc < 5) { - sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "UPING"); + send_reply(sptr, ERR_NEEDMOREPARAMS, "UPING"); return 0; } - if (hunt_server(1, cptr, sptr, "%s%s " TOK_UPING " %s %s %s %s", 3, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_UPING, cptr, 1, "%s %s %C %s", 3, parc, parv) + != HUNTED_ISME) return 0; /* * Determine port: First user supplied, then default : 7007 @@ -146,12 +147,8 @@ int ms_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (EmptyString(parv[4]) || (count = atoi(parv[4])) <= 0) { - if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :UPING: Illegal number of packets: %s", - me.name, parv[0], parv[4]); - else - sendto_one(sptr, "%s " TOK_NOTICE " %s%s :UPING: Illegal number of packets: %s", - NumServ(&me), NumNick(sptr), parv[4]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :UPING : Illegal number of " + "packets: %s", sptr, parv[4]); return 0; } /* @@ -159,14 +156,10 @@ int ms_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) */ if ((aconf = conf_find_server(parv[1]))) uping_server(sptr, aconf, port, count); - else { - if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :UPING: Host %s not listed in ircd.conf", - me.name, parv[0], parv[1]); - else - sendto_one(sptr, "%s " TOK_NOTICE " %s%s :UPING: Host %s not listed in ircd.conf", - NumServ(&me), NumNick(sptr), parv[1]); - } + else + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :UPING: Host %s not listed in " + "ircd.conf", sptr, parv[1]); + return 0; } @@ -194,7 +187,7 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(IsAnOper(sptr)); if (parc < 2) { - sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "UPING"); + send_reply(sptr, ERR_NEEDMOREPARAMS, "UPING"); return 0; } @@ -227,7 +220,8 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) parv[2] = UDP_PORT; } } - if (hunt_server(1, cptr, sptr, "%s%s " TOK_UPING " %s %s %s %s", 3, parc, parv) != HUNTED_ISME) + if (hunt_server_cmd(sptr, CMD_UPING, sptr, 1, "%s %s %C %s", 3, parc, parv) + != HUNTED_ISME) return 0; /* * Determine port: First user supplied, then default : 7007 @@ -237,12 +231,8 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (EmptyString(parv[4]) || (count = atoi(parv[4])) <= 0) { - if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :UPING: Illegal number of packets: %s", - me.name, parv[0], parv[4]); - else - sendto_one(sptr, "%s " TOK_NOTICE " %s%s :UPING: Illegal number of packets: %s", - NumServ(&me), NumNick(sptr), parv[4]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :UPING: Illegal number of " + "packets: %s", sptr, parv[4]); return 0; } /* @@ -251,12 +241,8 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if ((aconf = conf_find_server(parv[1]))) uping_server(sptr, aconf, port, count); else { - if (MyUser(sptr)) - sendto_one(sptr, ":%s NOTICE %s :UPING: Host %s not listed in ircd.conf", - me.name, parv[0], parv[1]); - else - sendto_one(sptr, "%s " TOK_NOTICE " %s%s :UPING: Host %s not listed in ircd.conf", - NumServ(&me), NumNick(sptr), parv[1]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :UPING: Host %s not listed in " + "ircd.conf", sptr, parv[1]); } return 0; } @@ -281,13 +267,13 @@ int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (!IsPrivileged(sptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return -1; } if (parc < 2) { - sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "UPING"); + sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "UPING"); /* XXX DEAD */ return 0; } @@ -330,16 +316,16 @@ int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) } } } - if (hunt_server(1, cptr, sptr, ":%s UPING %s %s %s %s", 3, parc, parv) != HUNTED_ISME) + if (hunt_server(1, cptr, sptr, ":%s UPING %s %s %s %s", 3, parc, parv) != HUNTED_ISME) /* XXX DEAD */ return 0; if (BadPtr(parv[4]) || atoi(parv[4]) <= 0) { if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Illegal number of packets: %s", + sendto_one(sptr, ":%s NOTICE %s :UPING: Illegal number of packets: %s", /* XXX DEAD */ me.name, parv[0], parv[4]); else - sendto_one(sptr, "%s NOTICE %s%s :UPING: Illegal number of packets: %s", + sendto_one(sptr, "%s NOTICE %s%s :UPING: Illegal number of packets: %s", /* XXX DEAD */ NumServ(&me), NumNick(sptr), parv[4]); return 0; } @@ -364,10 +350,10 @@ int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (!aconf) { if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Host %s not listed in ircd.conf", + sendto_one(sptr, ":%s NOTICE %s :UPING: Host %s not listed in ircd.conf", /* XXX DEAD */ me.name, parv[0], parv[1]); else - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ "%s NOTICE %s%s :UPING: Host %s not listed in ircd.conf", NumServ(&me), NumNick(sptr), parv[1]); return 0; @@ -384,14 +370,14 @@ int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { int err = errno; - sendto_ops("m_uping: socket: %s", (err != EMFILE) + sendto_ops("m_uping: socket: %s", (err != EMFILE) /* XXX DEAD */ ? ((strerror(err)) ? strerror(err) : "Unknown error") : "No more sockets"); if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ ":%s NOTICE %s :UPING: Unable to create udp ping socket", me.name, parv[0]); else - sendto_one(sptr, + sendto_one(sptr, /* XXX DEAD */ "%s NOTICE %s%s :UPING: Unable to create udp ping socket", NumServ(&me), NumNick(sptr)); ircd_log(L_ERROR, "UPING: Unable to create UDP socket"); @@ -400,10 +386,10 @@ int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) if (!os_set_nonblocking(fd)) { if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Can't set fd non-blocking", + sendto_one(sptr, ":%s NOTICE %s :UPING: Can't set fd non-blocking", /* XXX DEAD */ me.name, parv[0]); else - sendto_one(sptr, "%s NOTICE %s%s :UPING: Can't set fd non-blocking", + sendto_one(sptr, "%s NOTICE %s%s :UPING: Can't set fd non-blocking", /* XXX DEAD */ NumServ(&me), NumNick(sptr)); close(fd); return 0; diff --git a/ircd/m_userhost.c b/ircd/m_userhost.c index 4a7811e..b372e58 100644 --- a/ircd/m_userhost.c +++ b/ircd/m_userhost.c @@ -156,12 +156,12 @@ int m_userhost(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { if (i < j) sendbufto_one(sptr); - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], s); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], s); /* XXX DEAD */ sbuf = sprintf_irc(sendbuf, rpl_str(RPL_USERHOST), me.name, parv[0]); j = i - 1; } if (j) - sendbufto_one(sptr); + sendbufto_one(sptr); /* XXX DEAD */ return 0; } #endif diff --git a/ircd/m_userip.c b/ircd/m_userip.c index 8f8cb1a..5fb5860 100644 --- a/ircd/m_userip.c +++ b/ircd/m_userip.c @@ -151,13 +151,13 @@ int m_userip(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) else { if (i < j) - sendbufto_one(sptr); - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], s); + sendbufto_one(sptr); /* XXX DEAD */ + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], s); /* XXX DEAD */ sbuf = sprintf_irc(sendbuf, rpl_str(RPL_USERIP), me.name, parv[0]); j = i - 1; } if (i < j) - sendbufto_one(sptr); + sendbufto_one(sptr); /* XXX DEAD */ return 0; } #endif /* 0 */ diff --git a/ircd/m_version.c b/ircd/m_version.c index 5d543b0..b782791 100644 --- a/ircd/m_version.c +++ b/ircd/m_version.c @@ -117,23 +117,21 @@ int m_version(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { if (!(acptr = find_match_server(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[1]); + send_reply(sptr, ERR_NOSUCHSERVER, parv[1]); return 0; } parv[1] = acptr->name; } - if (hunt_server(0, cptr, sptr, "%s%s " TOK_VERSION " :%s", 1, parc, parv) == + if (hunt_server_cmd(sptr, CMD_VERSION, cptr, 0, ":%C", 1, parc, parv) == HUNTED_ISME) { char featurebuf[512]; sprintf_irc(featurebuf,FEATURES,FEATURESVALUES); - sendto_one(sptr, rpl_str(RPL_VERSION), - me.name, parv[0], version, debugmode, me.name, serveropts); - sendto_one(sptr, rpl_str(RPL_ISUPPORT), - me.name, parv[0], featurebuf); + send_reply(sptr, RPL_VERSION, version, debugmode, me.name, serveropts); + send_reply(sptr, RPL_ISUPPORT, featurebuf); } return 0; @@ -153,23 +151,21 @@ int ms_version(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { if (!(acptr = find_match_server(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[1]); + send_reply(sptr, ERR_NOSUCHSERVER, parv[1]); return 0; } parv[1] = acptr->name; } - if (hunt_server(0, cptr, sptr, "%s%s " TOK_VERSION " :%s", 1, parc, parv) == + if (hunt_server_cmd(sptr, CMD_VERSION, cptr, 0, ":%C", 1, parc, parv) == HUNTED_ISME) { char featurebuf[512]; sprintf_irc(featurebuf,FEATURES,FEATURESVALUES); - sendto_one(sptr, rpl_str(RPL_VERSION), - me.name, parv[0], version, debugmode, me.name, serveropts); - sendto_one(sptr, rpl_str(RPL_ISUPPORT), - me.name, parv[0], featurebuf); + send_reply(sptr, RPL_VERSION, version, debugmode, me.name, serveropts); + send_reply(sptr, RPL_ISUPPORT, featurebuf); } return 0; @@ -190,15 +186,15 @@ int m_version(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { if (!(acptr = find_match_server(parv[1]))) { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[1]); + sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[1]); /* XXX DEAF */ return 0; } parv[1] = acptr->name; } - if (hunt_server(0, cptr, sptr, "%s%s " TOK_VERSION " :%s", 1, parc, parv) == + if (hunt_server(0, cptr, sptr, "%s%s " TOK_VERSION " :%s", 1, parc, parv) == /* XXX DEAF */ HUNTED_ISME) - sendto_one(sptr, rpl_str(RPL_VERSION), + sendto_one(sptr, rpl_str(RPL_VERSION), /* XXX DEAF */ me.name, parv[0], version, debugmode, me.name, serveropts); return 0; diff --git a/ircd/m_wallchops.c b/ircd/m_wallchops.c index 8313504..da53c90 100644 --- a/ircd/m_wallchops.c +++ b/ircd/m_wallchops.c @@ -114,28 +114,25 @@ int m_wallchops(struct Client* cptr, struct Client* sptr, int parc, char* parv[] sptr->flags &= ~FLAGS_TS8; if (parc < 2 || EmptyString(parv[1])) - return send_error_to_client(sptr, ERR_NORECIPIENT, "WALLCHOPS"); + return send_reply(sptr, ERR_NORECIPIENT, "WALLCHOPS"); if (parc < 3 || EmptyString(parv[parc - 1])) - return send_error_to_client(sptr, ERR_NOTEXTTOSEND); + return send_reply(sptr, ERR_NOTEXTTOSEND); if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) { if (client_can_send_to_channel(sptr, chptr)) { if ((chptr->mode.mode & MODE_NOPRIVMSGS) && check_target_limit(sptr, chptr, chptr->chname, 0)) return 0; - /* Send to local clients: */ - sendto_lchanops_butone(cptr, sptr, chptr, - ":%s " MSG_NOTICE " @%s :%s", sptr->name, parv[1], parv[parc - 1]); - /* And to other servers: */ - sendto_chanopsserv_butone(cptr, sptr, chptr, - "%s%s " TOK_WALLCHOPS " %s :%s", NumNick(sptr), parv[1], parv[parc - 1]); + sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr, + SKIP_DEAF | SKIP_BURST | SKIP_NONOPS, + "%H :%s", chptr, parv[parc - 1]); } else - send_error_to_client(sptr, ERR_CANNOTSENDTOCHAN, parv[1]); + send_reply(sptr, ERR_CANNOTSENDTOCHAN, parv[1]); } else - send_error_to_client(sptr, ERR_NOSUCHCHANNEL, parv[1]); + send_reply(sptr, ERR_NOSUCHCHANNEL, parv[1]); return 0; } @@ -154,19 +151,11 @@ int ms_wallchops(struct Client* cptr, struct Client* sptr, int parc, char* parv[ if ((chptr = FindChannel(parv[1]))) { if (client_can_send_to_channel(sptr, chptr)) { - /* - * Send to local clients: - */ - sendto_lchanops_butone(cptr, sptr, chptr, - ":%s " MSG_NOTICE " @%s :%s", sptr->name, parv[1], parv[parc - 1]); - /* - * And to other servers: - */ - sendto_chanopsserv_butone(cptr, sptr, chptr, - "%s%s " TOK_WALLCHOPS " %s :%s", NumNick(sptr), parv[1], parv[parc - 1]); - } - else - sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), me.name, sptr->name, parv[1]); + sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr, + SKIP_DEAF | SKIP_BURST | SKIP_NONOPS, + "%H :%s", chptr, parv[parc - 1]); + } else + send_reply(sptr, ERR_CANNOTSENDTOCHAN, parv[1]); } return 0; } @@ -187,13 +176,13 @@ int m_wallchops(struct Client *cptr, struct Client *sptr, int parc, char *parv[] if (parc < 2 || *parv[1] == '\0') { - sendto_one(sptr, err_str(ERR_NORECIPIENT), me.name, parv[0], "WALLCHOPS"); + sendto_one(sptr, err_str(ERR_NORECIPIENT), me.name, parv[0], "WALLCHOPS"); /* XXX DEAD */ return -1; } if (parc < 3 || *parv[parc - 1] == '\0') { - sendto_one(sptr, err_str(ERR_NOTEXTTOSEND), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOTEXTTOSEND), me.name, parv[0]); /* XXX DEAD */ return -1; } @@ -210,19 +199,19 @@ int m_wallchops(struct Client *cptr, struct Client *sptr, int parc, char *parv[] check_target_limit(sptr, chptr, chptr->chname, 0)) return 0; /* Send to local clients: */ - sendto_lchanops_butone(cptr, sptr, chptr, + sendto_lchanops_butone(cptr, sptr, chptr, /* XXX DEAD */ ":%s NOTICE @%s :%s", parv[0], parv[1], parv[parc - 1]); /* And to other servers: */ - sendto_chanopsserv_butone(cptr, sptr, chptr, + sendto_chanopsserv_butone(cptr, sptr, chptr, /* XXX DEAD */ ":%s WC %s :%s", parv[0], parv[1], parv[parc - 1]); } else - sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), + sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), /* XXX DEAD */ me.name, parv[0], parv[1]); } } else - sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], parv[1]); + sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], parv[1]); /* XXX DEAD */ return 0; } diff --git a/ircd/m_wallops.c b/ircd/m_wallops.c index af2015b..2e5ad2f 100644 --- a/ircd/m_wallops.c +++ b/ircd/m_wallops.c @@ -90,6 +90,7 @@ #include "client.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "msg.h" #include "numeric.h" #include "send.h" @@ -108,7 +109,7 @@ int ms_wallops(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (EmptyString(message)) return need_more_params(sptr, "WALLOPS"); - sendto_ops_butone(cptr, sptr, ":%s WALLOPS :%s", parv[0], message); + sendcmdto_flag_butone(sptr, CMD_WALLOPS, cptr, FLAGS_WALLOP, ":%s", message); return 0; } @@ -124,7 +125,7 @@ int mo_wallops(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (EmptyString(message)) return need_more_params(sptr, "WALLOPS"); - sendto_ops_butone(0, sptr, ":%s WALLOPS :%s", parv[0], message); + sendcmdto_flag_butone(sptr, CMD_WALLOPS, 0, FLAGS_WALLOP, ":%s", message); return 0; } @@ -149,10 +150,10 @@ int m_wallops(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (!IsServer(sptr) && MyConnect(sptr) && !IsAnOper(sptr)) { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ return 0; } - sendto_ops_butone(IsServer(cptr) ? cptr : 0, sptr, + sendto_ops_butone(IsServer(cptr) ? cptr : 0, sptr, /* XXX DEAD */ ":%s WALLOPS :%s", parv[0], message); return 0; } diff --git a/ircd/m_who.c b/ircd/m_who.c index a658fbd..12f6b34 100644 --- a/ircd/m_who.c +++ b/ircd/m_who.c @@ -190,9 +190,9 @@ int m_who(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) bitsel |= WHOSELECT_EXTRA; #ifdef WPATH if (IsAnOper(sptr)) - write_log(WPATH, "# " TIME_T_FMT " %s!%s@%s WHO %s %s\n", - CurrentTime, sptr->name, sptr->user->username, sptr->user->host, - (BadPtr(parv[3]) ? parv[1] : parv[3]), parv[2]); + write_log(WPATH, "# " TIME_T_FMT " %#C WHO %s %s\n", + CurrentTime, sptr, (BadPtr(parv[3]) ? parv[1] : parv[3]), + parv[2]); #endif /* WPATH */ continue; case 'n': @@ -440,12 +440,11 @@ int m_who(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* Make a clean mask suitable to be sent in the "end of" */ if (mask && (p = strchr(mask, ' '))) *p = '\0'; - sendto_one(sptr, rpl_str(RPL_ENDOFWHO), - me.name, parv[0], BadPtr(mask) ? "*" : mask); + send_reply(sptr, RPL_ENDOFWHO, BadPtr(mask) ? "*" : mask); /* Notify the user if we decided that his query was too long */ if (counter < 0) - sendto_one(sptr, err_str(ERR_QUERYTOOLONG), me.name, parv[0], "WHO"); + send_reply(sptr, ERR_QUERYTOOLONG, "WHO"); return 0; } @@ -761,12 +760,12 @@ int m_who(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) /* Make a clean mask suitable to be sent in the "end of" */ if (mask && (p = strchr(mask, ' '))) *p = '\0'; - sendto_one(sptr, rpl_str(RPL_ENDOFWHO), + sendto_one(sptr, rpl_str(RPL_ENDOFWHO), /* XXX DEAD */ me.name, parv[0], BadPtr(mask) ? "*" : mask); /* Notify the user if we decided that his query was too long */ if (counter < 0) - sendto_one(sptr, err_str(ERR_QUERYTOOLONG), me.name, parv[0], "WHO"); + sendto_one(sptr, err_str(ERR_QUERYTOOLONG), me.name, parv[0], "WHO"); /* XXX DEAD */ return 0; } diff --git a/ircd/m_whois.c b/ircd/m_whois.c index e36325b..034374f 100644 --- a/ircd/m_whois.c +++ b/ircd/m_whois.c @@ -133,7 +133,7 @@ int m_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + send_reply(sptr, ERR_NONICKNAMEGIVEN); return 0; } @@ -144,7 +144,7 @@ int m_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) it with the correct servername - as is needed by hunt_server() */ if (MyUser(sptr) && (acptr = FindUser(parv[1]))) parv[1] = acptr->user->server->name; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_WHOIS " %s :%s", 1, parc, parv) != + if (hunt_server_cmd(sptr, CMD_WHOIS, cptr, 0, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; parv[1] = parv[2]; @@ -218,14 +218,14 @@ int m_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (user) { a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); } else { a2cptr = &me; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, "", "", ""); + send_reply(sptr, RPL_WHOISUSER, name, "", "", + ""); } found = 1; @@ -245,8 +245,8 @@ exact_match: { if (len + strlen(chptr->chname) + mlen > BUFSIZE - 5) { - sendto_one(sptr, ":%s %d %s %s :%s", - me.name, RPL_WHOISCHANNELS, parv[0], name, buf); + send_reply(sptr, RPL_EXPLICIT | RPL_WHOISCHANNELS, + "%s :%s", name, buf); *buf = '\0'; len = 0; } @@ -267,26 +267,22 @@ exact_match: } } if (buf[0] != '\0') - sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), - me.name, parv[0], name, buf); + send_reply(sptr, RPL_WHOISCHANNELS, name, buf); } - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, - parv[0], name, a2cptr->name, a2cptr->info); + send_reply(sptr, RPL_WHOISSERVER, name, a2cptr->name, a2cptr->info); if (user) { if (user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, - parv[0], name, user->away); + send_reply(sptr, RPL_AWAY, name, user->away); if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), - me.name, parv[0], name); + send_reply(sptr, RPL_WHOISOPERATOR, name); if (MyConnect(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, - parv[0], name, CurrentTime - user->last, acptr->firsttime); + send_reply(sptr, RPL_WHOISIDLE, name, CurrentTime - user->last, + acptr->firsttime); } if (found == 2 || total++ >= MAX_WHOIS_LINES) break; @@ -301,19 +297,19 @@ exact_match: user = acptr->user; name = (!*acptr->name) ? "?" : acptr->name; a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); goto exact_match; } } if (!found) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + send_reply(sptr, ERR_NOSUCHNICK, nick); if (p) p[-1] = ','; if (!MyConnect(sptr) || total >= MAX_WHOIS_LINES) break; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]); + send_reply(sptr, RPL_ENDOFWHOIS, parv[1]); return 0; } @@ -347,7 +343,7 @@ int ms_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + send_reply(sptr, ERR_NONICKNAMEGIVEN); return 0; } @@ -358,7 +354,7 @@ int ms_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) it with the correct servername - as is needed by hunt_server() */ if (MyUser(sptr) && (acptr = FindUser(parv[1]))) parv[1] = acptr->user->server->name; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_WHOIS " %s :%s", 1, parc, parv) != + if (hunt_server_cmd(sptr, CMD_WHOIS, cptr, 0, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; parv[1] = parv[2]; @@ -432,14 +428,14 @@ int ms_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (user) { a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); } else { a2cptr = &me; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, "", "", ""); + send_reply(sptr, RPL_WHOISUSER, name, "", "", + ""); } found = 1; @@ -459,8 +455,8 @@ exact_match: { if (len + strlen(chptr->chname) + mlen > BUFSIZE - 5) { - sendto_one(sptr, ":%s %d %s %s :%s", - me.name, RPL_WHOISCHANNELS, parv[0], name, buf); + send_reply(sptr, RPL_EXPLICIT | RPL_WHOISCHANNELS, + "%s :%s", name, buf); *buf = '\0'; len = 0; } @@ -481,26 +477,22 @@ exact_match: } } if (buf[0] != '\0') - sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), - me.name, parv[0], name, buf); + send_reply(sptr, RPL_WHOISCHANNELS, name, buf); } - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, - parv[0], name, a2cptr->name, a2cptr->info); + send_reply(sptr, RPL_WHOISSERVER, name, a2cptr->name, a2cptr->info); if (user) { if (user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, - parv[0], name, user->away); + send_reply(sptr, RPL_AWAY, name, user->away); if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), - me.name, parv[0], name); + send_reply(sptr, RPL_WHOISOPERATOR, name); if (MyConnect(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, - parv[0], name, CurrentTime - user->last, acptr->firsttime); + send_reply(sptr, RPL_WHOISIDLE, name, CurrentTime - user->last, + acptr->firsttime); } if (found == 2 || total++ >= MAX_WHOIS_LINES) break; @@ -515,19 +507,19 @@ exact_match: user = acptr->user; name = (!*acptr->name) ? "?" : acptr->name; a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); goto exact_match; } } if (!found) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + send_reply(sptr, ERR_NOSUCHNICK, nick); if (p) p[-1] = ','; if (!MyConnect(sptr) || total >= MAX_WHOIS_LINES) break; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]); + send_reply(sptr, RPL_ENDOFWHOIS, parv[1]); return 0; } @@ -561,7 +553,7 @@ int mo_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + send_reply(sptr, ERR_NONICKNAMEGIVEN); return 0; } @@ -572,7 +564,7 @@ int mo_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) it with the correct servername - as is needed by hunt_server() */ if (MyUser(sptr) && (acptr = FindUser(parv[1]))) parv[1] = acptr->user->server->name; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_WHOIS " %s :%s", 1, parc, parv) != + if (hunt_server_cmd(sptr, CMD_WHOIS, cptr, 0, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; parv[1] = parv[2]; @@ -646,14 +638,14 @@ int mo_whois(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (user) { a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); } else { a2cptr = &me; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, "", "", ""); + send_reply(sptr, RPL_WHOISUSER, name, "", "", + ""); } found = 1; @@ -673,8 +665,8 @@ exact_match: { if (len + strlen(chptr->chname) + mlen > BUFSIZE - 5) { - sendto_one(sptr, ":%s %d %s %s :%s", - me.name, RPL_WHOISCHANNELS, parv[0], name, buf); + send_reply(sptr, RPL_EXPLICIT | RPL_WHOISCHANNELS, + "%s :%s", name, buf); *buf = '\0'; len = 0; } @@ -695,26 +687,22 @@ exact_match: } } if (buf[0] != '\0') - sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), - me.name, parv[0], name, buf); + send_reply(sptr, RPL_WHOISCHANNELS, name, buf); } - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, - parv[0], name, a2cptr->name, a2cptr->info); + send_reply(sptr, RPL_WHOISSERVER, name, a2cptr->name, a2cptr->info); if (user) { if (user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, - parv[0], name, user->away); + send_reply(sptr, RPL_AWAY, name, user->away); if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), - me.name, parv[0], name); + send_reply(sptr, RPL_WHOISOPERATOR, name); if (MyConnect(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, - parv[0], name, CurrentTime - user->last, acptr->firsttime); + send_reply(sptr, RPL_WHOISIDLE, name, CurrentTime - user->last, + acptr->firsttime); } if (found == 2 || total++ >= MAX_WHOIS_LINES) break; @@ -729,19 +717,19 @@ exact_match: user = acptr->user; name = (!*acptr->name) ? "?" : acptr->name; a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, - parv[0], name, user->username, user->host, acptr->info); + send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, + acptr->info); goto exact_match; } } if (!found) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + send_reply(sptr, ERR_NOSUCHNICK, nick); if (p) p[-1] = ','; if (!MyConnect(sptr) || total >= MAX_WHOIS_LINES) break; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]); + send_reply(sptr, RPL_ENDOFWHOIS, parv[1]); return 0; } @@ -778,7 +766,7 @@ int m_whois(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); /* XXX DEAD */ return 0; } @@ -789,7 +777,7 @@ int m_whois(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) it with the correct servername - as is needed by hunt_server() */ if (MyUser(sptr) && (acptr = FindUser(parv[1]))) parv[1] = acptr->user->server->name; - if (hunt_server(0, cptr, sptr, "%s%s " TOK_WHOIS " %s :%s", 1, parc, parv) != + if (hunt_server(0, cptr, sptr, "%s%s " TOK_WHOIS " %s :%s", 1, parc, parv) != /* XXX DEAD */ HUNTED_ISME) return 0; parv[1] = parv[2]; @@ -863,13 +851,13 @@ int m_whois(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (user) { a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, + sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, /* XXX DEAD */ parv[0], name, user->username, user->host, acptr->info); } else { a2cptr = &me; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, + sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, /* XXX DEAD */ parv[0], name, "", "", ""); } @@ -890,7 +878,7 @@ exact_match: { if (len + strlen(chptr->chname) + mlen > BUFSIZE - 5) { - sendto_one(sptr, ":%s %d %s %s :%s", + sendto_one(sptr, ":%s %d %s %s :%s", /* XXX DEAD */ me.name, RPL_WHOISCHANNELS, parv[0], name, buf); *buf = '\0'; len = 0; @@ -912,25 +900,25 @@ exact_match: } } if (buf[0] != '\0') - sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), + sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), /* XXX DEAD */ me.name, parv[0], name, buf); } - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, + sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, /* XXX DEAD */ parv[0], name, a2cptr->name, a2cptr->info); if (user) { if (user->away) - sendto_one(sptr, rpl_str(RPL_AWAY), me.name, + sendto_one(sptr, rpl_str(RPL_AWAY), me.name, /* XXX DEAD */ parv[0], name, user->away); if (IsAnOper(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), + sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), /* XXX DEAD */ me.name, parv[0], name); if (MyConnect(acptr)) - sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, + sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, /* XXX DEAD */ parv[0], name, CurrentTime - user->last, acptr->firsttime); } if (found == 2 || total++ >= MAX_WHOIS_LINES) @@ -946,19 +934,19 @@ exact_match: user = acptr->user; name = (!*acptr->name) ? "?" : acptr->name; a2cptr = user->server; - sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, + sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, /* XXX DEAD */ parv[0], name, user->username, user->host, acptr->info); goto exact_match; } } if (!found) - sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ if (p) p[-1] = ','; if (!MyConnect(sptr) || total >= MAX_WHOIS_LINES) break; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]); + sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]); /* XXX DEAD */ return 0; } diff --git a/ircd/m_whowas.c b/ircd/m_whowas.c index 47907c2..40fab99 100644 --- a/ircd/m_whowas.c +++ b/ircd/m_whowas.c @@ -120,13 +120,13 @@ int m_whowas(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + send_reply(sptr, ERR_NONICKNAMEGIVEN); return 0; } if (parc > 2) max = atoi(parv[2]); if (parc > 3) - if (hunt_server(1, cptr, sptr, "%s%s " TOK_WHOWAS " %s %s :%s", 3, parc, parv)) + if (hunt_server_cmd(sptr, CMD_WHOWAS, cptr, 1, "%s %s :%C", 3, parc, parv)) return 0; parv[1] = canonize(parv[1]); @@ -140,14 +140,12 @@ int m_whowas(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { if (0 == ircd_strcmp(nick, temp->name)) { - sendto_one(sptr, rpl_str(RPL_WHOWASUSER), - me.name, parv[0], temp->name, temp->username, - temp->hostname, temp->realname); - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, parv[0], - temp->name, temp->servername, myctime(temp->logoff)); + send_reply(sptr, RPL_WHOWASUSER, temp->name, temp->username, + temp->hostname, temp->realname); + send_reply(sptr, RPL_WHOISSERVER, temp->name, temp->servername, + myctime(temp->logoff)); if (temp->away) - sendto_one(sptr, rpl_str(RPL_AWAY), - me.name, parv[0], temp->name, temp->away); + send_reply(sptr, RPL_AWAY, temp->name, temp->away); cur++; found++; } @@ -155,12 +153,12 @@ int m_whowas(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) break; } if (!found) - sendto_one(sptr, err_str(ERR_WASNOSUCHNICK), me.name, parv[0], nick); + send_reply(sptr, ERR_WASNOSUCHNICK, nick); /* To keep parv[1] intact for ENDOFWHOWAS */ if (p) p[-1] = ','; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOWAS), me.name, parv[0], parv[1]); + send_reply(sptr, RPL_ENDOFWHOWAS, parv[1]); return 0; } @@ -183,13 +181,13 @@ int m_whowas(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) if (parc < 2) { - sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); + sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); /* XXX DEAD */ return 0; } if (parc > 2) max = atoi(parv[2]); if (parc > 3) - if (hunt_server(1, cptr, sptr, "%s%s " TOK_WHOWAS " %s %s :%s", 3, parc, parv)) + if (hunt_server(1, cptr, sptr, "%s%s " TOK_WHOWAS " %s %s :%s", 3, parc, parv)) /* XXX DEAD */ return 0; parv[1] = canonize(parv[1]); @@ -203,13 +201,13 @@ int m_whowas(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { if (0 == ircd_strcmp(nick, temp->name)) { - sendto_one(sptr, rpl_str(RPL_WHOWASUSER), + sendto_one(sptr, rpl_str(RPL_WHOWASUSER), /* XXX DEAD */ me.name, parv[0], temp->name, temp->username, temp->hostname, temp->realname); - sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, parv[0], + sendto_one(sptr, rpl_str(RPL_WHOISSERVER), me.name, parv[0], /* XXX DEAD */ temp->name, temp->servername, myctime(temp->logoff)); if (temp->away) - sendto_one(sptr, rpl_str(RPL_AWAY), + sendto_one(sptr, rpl_str(RPL_AWAY), /* XXX DEAD */ me.name, parv[0], temp->name, temp->away); cur++; found++; @@ -218,12 +216,12 @@ int m_whowas(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) break; } if (!found) - sendto_one(sptr, err_str(ERR_WASNOSUCHNICK), me.name, parv[0], nick); + sendto_one(sptr, err_str(ERR_WASNOSUCHNICK), me.name, parv[0], nick); /* XXX DEAD */ /* To keep parv[1] intact for ENDOFWHOWAS */ if (p) p[-1] = ','; } - sendto_one(sptr, rpl_str(RPL_ENDOFWHOWAS), me.name, parv[0], parv[1]); + sendto_one(sptr, rpl_str(RPL_ENDOFWHOWAS), me.name, parv[0], parv[1]); /* XXX DEAD */ return 0; } #endif /* 0 */ diff --git a/ircd/s_stats.c b/ircd/s_stats.c index 251ce2c..c4fd2cf 100644 --- a/ircd/s_stats.c +++ b/ircd/s_stats.c @@ -157,7 +157,8 @@ int hunt_stats(struct Client* cptr, struct Client* sptr, int parc, char* parv[], /* open to all, standard # of params */ case 'U': case 'u': - return hunt_server(0, cptr, sptr, "%s%s " TOK_STATS " %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 0, "%s :%C", 2, parc, + parv); /* open to all, varying # of params */ case 'k': @@ -168,9 +169,11 @@ int hunt_stats(struct Client* cptr, struct Client* sptr, int parc, char* parv[], case 'P': { if (parc > 3) - return hunt_server(0, cptr, sptr, "%s%s " TOK_STATS " %s %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 0, "%s %C :%s", 2, parc, + parv); else - return hunt_server(0, cptr, sptr, "%s%s " TOK_STATS " %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 0, "%s :%C", 2, parc, + parv); } /* oper only, varying # of params */ @@ -179,16 +182,20 @@ int hunt_stats(struct Client* cptr, struct Client* sptr, int parc, char* parv[], case 'M': { if (parc == 4) - return hunt_server(1, cptr, sptr, "%s%s " TOK_STATS " %s %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 1, "%s %C :%s", 2, parc, + parv); else if (parc > 4) - return hunt_server(1, cptr, sptr, "%s%s " TOK_STATS " %s %s %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 1, "%s %C %s :%s", 2, + parc, parv); else - return hunt_server(1, cptr, sptr, "%s%s " TOK_STATS " %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 1, "%s :%C", 2, parc, + parv); } /* oper only, standard # of params */ default: - return hunt_server(1, cptr, sptr, "%s%s " TOK_STATS " %s :%s", 2, parc, parv); + return hunt_server_cmd(sptr, CMD_STATS, cptr, 1, "%s :%C", 2, parc, + parv); } } diff --git a/ircd/s_user.c b/ircd/s_user.c index 7bd0a9c..615f869 100644 --- a/ircd/s_user.c +++ b/ircd/s_user.c @@ -272,6 +272,51 @@ int hunt_server(int MustBeOper, struct Client *cptr, struct Client *sptr, char * return (HUNTED_PASS); } +int hunt_server_cmd(struct Client *from, const char *cmd, const char *tok, + struct Client *one, int MustBeOper, const char *pattern, + int server, int parc, char *parv[]) +{ + struct Client *acptr; + char *to; + + /* Assume it's me, if no server or an unregistered client */ + if (parc <= server || EmptyString((to = parv[server])) || IsUnknown(from)) + return (HUNTED_ISME); + + /* Make sure it's a server */ + if (MyUser(from)) { + /* Make sure it's a server */ + if (!strchr(to, '*')) { + if (0 == (acptr = FindClient(to))) + return HUNTED_NOSUCH; + + if (acptr->user) + acptr = acptr->user->server; + } else if (!(acptr = find_match_server(to))) { + send_reply(from, ERR_NOSUCHSERVER, to); + return (HUNTED_NOSUCH); + } + } else if (!(acptr = FindNServer(to))) + return (HUNTED_NOSUCH); /* Server broke off in the meantime */ + + if (IsMe(acptr)) + return (HUNTED_ISME); + + if (MustBeOper && !IsPrivileged(from)) { + send_reply(from, ERR_NOPRIVILEGES); + return HUNTED_NOSUCH; + } + + assert(!IsServer(from)); + + parv[server] = (char *) acptr; /* HACK! HACK! HACK! ARGH! */ + + sendcmdto_one(from, cmd, tok, acptr, pattern, parv[1], parv[2], parv[3], + parv[4], parv[5], parv[6], parv[7], parv[8]); + + return (HUNTED_PASS); +} + /* * 'do_nick_name' ensures that the given parameter (nick) is really a proper * string for a nickname (note, the 'nick' may be modified in the process...) diff --git a/ircd/send.c b/ircd/send.c index 09792e2..9c1ee96 100644 --- a/ircd/send.c +++ b/ircd/send.c @@ -1179,7 +1179,9 @@ void sendcmdto_channel_butone(struct Client *from, const char *cmd, /* Build buffer to send to users */ va_start(vd.vd_args, pattern); - ircd_snprintf(0, userbuf, sizeof(userbuf) - 2, "%:#C %s %v", from, cmd, &vd); + ircd_snprintf(0, userbuf, sizeof(userbuf) - 2, + skip & SKIP_NONOPS ? "%:#C %s @%v" : "%:#C %s %v", from, + skip & SKIP_NONOPS ? MSG_NOTICE : cmd, &vd); va_end(vd.vd_args); /* Build buffer to send to servers */