* note: it is guaranteed that parv[0]..parv[parc-1] are all
* non-NULL pointers.
*/
-#if 0
-/*
- * No need to include handlers.h here the signatures must match
- * and we don't need to force a rebuild of all the handlers everytime
- * we add a new one to the list. --Bleep
- */
-#include "handlers.h"
-#endif /* 0 */
+#include "config.h"
+
#include "client.h"
#include "ircd.h"
+#include "ircd_features.h"
+#include "ircd_log.h"
#include "ircd_reply.h"
#include "ircd_string.h"
#include "msg.h"
#include "s_serv.h"
#include "send.h"
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
/*
* m_lusers - generic message handler
{
int longoutput = MyUser(sptr) || IsOper(sptr);
if (parc > 2)
- if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 2, parc, parv) !=
- HUNTED_ISME)
+ if (hunt_server_cmd(sptr, CMD_LUSERS, cptr, feature_int(FEAT_HIS_REMOTE),
+ "%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);
+ assert(UserStats.inv_clients <= UserStats.clients + UserStats.unknowns);
+
+ send_reply(sptr, RPL_LUSERCLIENT,
+ UserStats.clients - UserStats.inv_clients + UserStats.unknowns,
+ 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)", sptr, max_connection_count,
+ max_client_count);
return 0;
}
{
int longoutput = MyUser(sptr) || IsOper(sptr);
if (parc > 2)
- if (hunt_server(0, cptr, sptr, "%s%s " TOK_LUSERS " %s :%s", 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);
- if (longoutput && UserStats.opers)
- sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], UserStats.opers);
- if (UserStats.unknowns > 0)
- sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0],
- 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);
-
- 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);
-
- return 0;
-}
-
-
-#if 0
-/*
- * m_lusers
- *
- * parv[0] = sender
- * parv[1] = ignored
- * parv[2] = server to query
- */
-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)", sptr, max_connection_count,
+ max_client_count);
return 0;
}
-#endif /* 0 */