Author: Kev <klmitch@mit.edu>
authorKevin L. Mitchell <klmitch@mit.edu>
Fri, 28 Apr 2000 15:04:59 +0000 (15:04 +0000)
committerKevin L. Mitchell <klmitch@mit.edu>
Fri, 28 Apr 2000 15:04:59 +0000 (15:04 +0000)
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

53 files changed:
ChangeLog
include/s_user.h
ircd/m_admin.c
ircd/m_away.c
ircd/m_clearmode.c
ircd/m_close.c
ircd/m_connect.c
ircd/m_defaults.c
ircd/m_destruct.c
ircd/m_die.c
ircd/m_endburst.c
ircd/m_error.c
ircd/m_gline.c
ircd/m_help.c
ircd/m_info.c
ircd/m_invite.c
ircd/m_jupe.c
ircd/m_kill.c
ircd/m_links.c
ircd/m_list.c
ircd/m_lusers.c
ircd/m_map.c
ircd/m_mode.c
ircd/m_motd.c
ircd/m_names.c
ircd/m_nick.c
ircd/m_notice.c
ircd/m_oper.c
ircd/m_opmode.c
ircd/m_pass.c
ircd/m_ping.c
ircd/m_pong.c
ircd/m_privmsg.c
ircd/m_rehash.c
ircd/m_restart.c
ircd/m_settime.c
ircd/m_silence.c
ircd/m_squit.c
ircd/m_time.c
ircd/m_topic.c
ircd/m_trace.c
ircd/m_uping.c
ircd/m_userhost.c
ircd/m_userip.c
ircd/m_version.c
ircd/m_wallchops.c
ircd/m_wallops.c
ircd/m_who.c
ircd/m_whois.c
ircd/m_whowas.c
ircd/s_stats.c
ircd/s_user.c
ircd/send.c

index 916813c5a7b9f6402a5853659b49f476cb63279e..31c50daa50874274a27383add77055de6061130d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,95 @@
+2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * 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 <isomer@coders.net>
        * 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  <klmitch@mit.edu>
 
+       * 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
 
        conversions; use ircd_snprintf in a couple of cases to negate the
        possibility of buffer overflow
 
->>>>>>> 1.106
 2000-04-26  Kevin L. Mitchell  <klmitch@mit.edu>
 
        * ircd/channel.c: convert as much as possible to new send
 #
 # 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.
 #
index dd6c62001e59454d69ee7bcc00d239a8945c229c..03d3a3934918ee60a5730fb1170e6ef6de160809 100644 (file)
@@ -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);
index 25912591fceaeda27831a9d93dfd2c967f304904..adde00066100ec784e0b4e03f3f9e44505bc59d6 100644 (file)
@@ -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());
index 2ccd5f970d5306eafa99d4a61231192b9bfc2b2b..db726ffce8c45998e0546db758ab8df2dc24ebcb 100644 (file)
@@ -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;
 }
 
index aeb2e9e3e793c81a5050edfb60ef85c68a1a16bf..a2946e081aebbd686257ffcdff3be1e2380cc103 100644 (file)
@@ -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 */
index 3fd7dd8da51df8e302348ef1a97ca81c13183123..5337639fa86063fddcc5718944b9ed4a43e34597 100644 (file)
@@ -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));
 }
-
-
index efcd2e44a2228108c646be0eb3b0c61153f6f2f3..72edaaa6ac090141e500efa824d6c56cebef0974 100644 (file)
@@ -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;
index 67fcc1b5a0342fa0540b8f5e3a44c221be7f5875..4404cc1d93047923eab753f17d315abfe331855d 100644 (file)
 
 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;
 }
index fabc93ebe13017a0b6179abb5fe50158be723fed..c26aeaf338c7f192adc565ec1002f6a731356aea 100644 (file)
@@ -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;
index 0459243d7326abbf6433c7c490e6b7113a477de8..228813087ec64a8f7d34d816300e63bf984431b6 100644 (file)
@@ -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");
index 242614505d3219127a51669e48cc12cefea099a7..605a45c3baddfdaf4d8c2e14859eabd6bad16ca5 100644 (file)
@@ -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;
index 85e6befec9abff7039b4321b540098b0ecf49bd0..342a4cda513ef605b0d40e74dce92b00e11df661 100644 (file)
@@ -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)
   {
index a63331a4662c790aedd10389688ab89353729075..2587c5ab1d297b87d25b166c2f7def8cc5bebb66 100644 (file)
@@ -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]);
 }
index 460c1ca52d7dbde20a183520d34184d572e02e21..36d53eb3e261d8f3c40be0c3f62d565d9bf8edec 100644 (file)
@@ -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 */
index f06d0bb9a5e3dbfe2080cca5f10cd9b97f65f1e0..d1c28c9d82a411f44cb1784bfe7f86a136f8dd67 100644 (file)
@@ -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;
 }
index 1ee016cfb350dc10b45006ffbf0d3bcba8666c30..e7607383e606841584fd01bffd8653a6db36a0b7 100644 (file)
@@ -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;
index 2fca5bbfc1a21d38e1d13bff75e6f4fb3fcc0392..2541875370fa0ea12b92246980a5761cb8b515fa 100644 (file)
@@ -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);
index bf62b60e9d32398740462f7e56cb961f501585bb..5bf72b8d2cd2b42dbcd2aa41f71c99c112759e3d 100644 (file)
@@ -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
index fb4273a0d2143ef2ef1295dfd02a71bf15e22dfb..60b3d049ef2cc1af5b49085a4790d006a4ba917c 100644 (file)
@@ -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;
 }
index 0b9ccf7463abc9a856b03e8c6159a5bac85a1e63..92145e2c62f7047fbbb99fe7ead0207d7f13a295 100644 (file)
@@ -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 */
index ebf6751e5ebd8c5fffc86345701d4f06b1956f29..0a1c9e3024842bb3b0a3a0e0e9cffa65152f287a 100644 (file)
@@ -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);
 
index 16b55cb54916e4b5cae7744ead2f6900e2695e27..e420ea161bb057dc5dc00f07de0ad4f0d3804b9d 100644 (file)
@@ -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;
 }
index 9e93a007514ffd89d93bc25225f947c206b2044f..ac2c81201f58b7804fa4d5ebfe7f3f6c268aea62 100644 (file)
@@ -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);
     }
   }
index 84ab25380bdc2e57b962f6ee599748dfd21f729a..88eb8f4fc4a383bc804ad50dfd0c2a30d5db395a 100644 (file)
@@ -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],
-        "\ 2Type /MOTD to read the AUP before continuing using this service.\ 2");
-    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, ":\ 2Type /MOTD to read the "
+              "AUP before continuing using this service.\ 2");
+    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],
-        "\ 2Type /MOTD to read the AUP before continuing using this service.\ 2");
-    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, ":\ 2Type /MOTD to read the "
+              "AUP before continuing using this service.\ 2");
+    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 */
         "\ 2Type /MOTD to read the AUP before continuing using this service.\ 2");
-    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 */
index 5d6f3a12d6db7e12bf5481775c47da29e2433a39..4ff66996aa6c3efb575fb44f27437d49c07bbd5d 100644 (file)
@@ -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 */
index fa2aab0dc7c5181ec95beb9d28fe0a5faaab4be7..945e3a9cb2a66ac7e0b96c24c710fd87ad9881c1 100644 (file)
@@ -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)");
index 27b09822f3c59fc3b9e64e6a0b1e90481b581294..202297248c8904db994bbb9796503216f14dcb56 100644 (file)
@@ -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;
 }
index 12ebde20f7aff0e1d1d579762edb7bba22a0d346..8de332648edbf5f7e236963f1d22fe1edd58009c 100644 (file)
@@ -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;
index c67eb029e5e3d0d86b7ebd2cdea35506f98df432..fb4d52486f97daee1fc9477e3c81533b9c37e3c0 100644 (file)
@@ -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 */
index 50870b2b536d91de439c60bb5613f55149e756c1..2087118d6b2400dddb256f744238d431e75b6ef7 100644 (file)
@@ -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);
index 751c174ec60b3746695e63643ffb85de4c514193..a267b6eb42626537b808e4963dc2fb2ae7245980 100644 (file)
@@ -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
index 40f9b18569b082bcebb53dbc0069c63163ffc908..bbe4d537ff4a144f7bbc20fba184f6041d49664f 100644 (file)
@@ -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;
     }
index 3a6f0594239ee5585412e4c1aa664de6a82f85b6..fd4162389eb0c348e926b458e27bbd7b9289314b 100644 (file)
@@ -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;
 }
index 000f94bd902f9e3ec2f0a60c10bdc931ec6f0c55..24055ea879320540fc8ebd03ab6b069c25505b7c 100644 (file)
@@ -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);
 }
index 290dc9892de1eb705e37a6af932aa1b4d6aff34c..11d71e96f656f8b58097a0af4ed39b7df690d7b4 100644 (file)
@@ -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));
index bc55865020dfcb9a42fc1bd1f0669af6cd7f14ba..a214efbecd045be62812ab2150a5bf91bba155a3 100644 (file)
@@ -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");
   }
index 535c81ba75fcbb7fe70fd314449e5a727dee0207..25867e9fb44d3f0457435841ad027f05b59b4ee0 100644 (file)
@@ -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]);
       }
     }
index f28015de752a4edd130c6e80a21db5877837d4e4..2d46d8c69e04b726703514223ab488fd45f63363 100644 (file)
@@ -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);
 }
index 7cba40d0954395df7f32029fee2623c8418a26c5..c7d3561c5c00d039fd0c1d875dd669bd474ae953 100644 (file)
  */
 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;
 }
index a7e8368984fac5bada897447e99be7a2abba4ec5..2d963d59fde98876fbbc85603efa8b5a0ae8db00 100644 (file)
@@ -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;
index 601892f811c38cb09252da57d2f6997908d2bee0..7d3e7ec2036438a70157e8304739ab139a4fa505 100644 (file)
@@ -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 <tname> :<target>" */
     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 : "<No_match>");
+        version, debugmode, tname, acptr ? acptr->from->name : "<No_match>"
 #else /* GODMODE */
         version, debugmode, tname, acptr ? acptr->from->name : "<No_match>",
-        (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], "<No_match>", *(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 <tname> :<target>" */
     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 : "<No_match>");
+        version, debugmode, tname, acptr ? acptr->from->name : "<No_match>"
 #else /* GODMODE */
         version, debugmode, tname, acptr ? acptr->from->name : "<No_match>",
-        (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], "<No_match>", *(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 <tname> :<target>" */
     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 : "<No_match>");
+        version, debugmode, tname, acptr ? acptr->from->name : "<No_match>"
 #else /* GODMODE */
         version, debugmode, tname, acptr ? acptr->from->name : "<No_match>",
-        (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], "<No_match>", *(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 : "<No_match>");
 #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], "<No_match>", *(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;
 }
index 132eef01a8e5836f80a0c39d9df48c5a04f408b8..4fe73271822e28e53733c981be52ce9bac0d4c21 100644 (file)
@@ -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;
index 4a7811ebf3d57b7be6c491c55011ec776c09f153..b372e582446b82318682e23a6cccd7395f29cd47 100644 (file)
@@ -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
index 8f8cb1a04aab8fd8890a677ad237d60bc8d933fa..5fb5860bd44c12e457accf970630c211cc4aa7ed 100644 (file)
@@ -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 */
index 5d543b068642d6735ea2cb119888fa0468b1771a..b78279156888bd337fe3d662fe495e4a19dd1e8a 100644 (file)
@@ -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;
index 8313504a050a4414e51365523cfe50ad412357f7..da53c90437375e7bda34e0f030bd1234313d87cf 100644 (file)
@@ -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;
 }
index af2015be3ec83a4d83b3b9d81198e533577364e9..2e5ad2feaacf11e39c822bfd93edde9a81dd52eb 100644 (file)
@@ -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;
 }
index a658fbd1c758e98d8645b890219f0ede7e983a8e..12f6b34707d2c3712e23e74dc3c4c8c5072a53fb 100644 (file)
@@ -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;
 }
index e36325b115a5888b7e52d9dfcfd257284ff60041..034374f9730ec5fa24ec25dfacbef42215714d76 100644 (file)
@@ -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, "<unknown>", "<unknown>", "<unknown>");
+         send_reply(sptr, RPL_WHOISUSER, name, "<unknown>", "<unknown>",
+                    "<unknown>");
         }
 
         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, "<unknown>", "<unknown>", "<unknown>");
+         send_reply(sptr, RPL_WHOISUSER, name, "<unknown>", "<unknown>",
+                    "<unknown>");
         }
 
         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, "<unknown>", "<unknown>", "<unknown>");
+         send_reply(sptr, RPL_WHOISUSER, name, "<unknown>", "<unknown>",
+                    "<unknown>");
         }
 
         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, "<unknown>", "<unknown>", "<unknown>");
         }
 
@@ -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;
 }
index 47907c220ea744b1d8c2a889d062f1d9704dece7..40fab99a32ca71701c61e9e3e604423c4db621c3 100644 (file)
@@ -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 */
index 251ce2c6aed4c853b0427f99bd3f08549b59205c..c4fd2cf3b374cf54959329fd4512e2fc6e85a470 100644 (file)
@@ -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);
   }
 }
 
index 7bd0a9c0abac8b91e63c855adaa3fcbc837daf1d..615f86922b6bb3defd150bba4b35ac187e22fdb0 100644 (file)
@@ -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...)
index 09792e2bb7ac8ddc53713bb1e46654906350c3b9..9c1ee96a40b2c35b8689efa8415cee46a2481008 100644 (file)
@@ -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 */