]> jfr.im git - solanum.git/blobdiff - modules/m_ison.c
Replace RPL_WHOISTEXT(337) with RPL_WHOISSPECIAL(320) (#419)
[solanum.git] / modules / m_ison.c
index 67a0939da9fba1fbd396cac77662ba0337defa13..9f4dd577cea9f36a69622a9237272160e1bfeaf5 100644 (file)
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
- *
- *  $Id: m_ison.c 254 2005-09-21 23:35:12Z nenolod $
  */
 
 #include "stdinc.h"
 #include "client.h"
-#include "irc_string.h"
+#include "match.h"
 #include "ircd.h"
 #include "numeric.h"
 #include "send.h"
 
 #include <string.h>
 
-static int m_ison(struct Client *, struct Client *, int, const char **);
+static const char ison_desc[] = "Provides the ISON command to check if a set of users is online";
+
+static void m_ison(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
 
 struct Message ison_msgtab = {
-       "ISON", 0, 0, 0, MFLG_SLOW,
+       "ISON", 0, 0, 0, 0,
        {mg_unreg, {m_ison, 2}, mg_ignore, mg_ignore, mg_ignore, {m_ison, 2}}
 };
 
 mapi_clist_av1 ison_clist[] = { &ison_msgtab, NULL };
-DECLARE_MODULE_AV1(ison, NULL, NULL, ison_clist, NULL, NULL, "$Revision: 254 $");
+
+DECLARE_MODULE_AV2(ison, NULL, NULL, ison_clist, NULL, NULL, NULL, NULL, ison_desc);
 
 static char buf[BUFSIZE];
 static char buf2[BUFSIZE];
@@ -62,8 +63,8 @@ static char buf2[BUFSIZE];
  * format:
  * ISON :nicklist
  */
-static int
-m_ison(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+static void
+m_ison(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Client *target_p;
        char *nick;
@@ -76,19 +77,19 @@ m_ison(struct Client *client_p, struct Client *source_p, int parc, const char *p
        current_insert_point2 = buf2;
        *buf2 = '\0';
 
-       rb_sprintf(buf, form_str(RPL_ISON), me.name, source_p->name);
+       sprintf(buf, form_str(RPL_ISON), me.name, source_p->name);
        len = strlen(buf);
        current_insert_point = buf + len;
 
-       /* rfc1489 is ambigious about how to handle ISON
+       /* rfc1459 is ambigious about how to handle ISON
         * this should handle both interpretations.
         */
        for (i = 1; i < parc; i++)
        {
                char *cs = LOCAL_COPY(parv[i]);
-               for (nick = strtoken(&p, cs, " "); nick; nick = strtoken(&p, NULL, " "))
+               for (nick = rb_strtok_r(cs, " ", &p); nick; nick = rb_strtok_r(NULL, " ", &p))
                {
-                       target_p = find_named_client(nick);
+                       target_p = find_named_person(nick);
 
                        if(target_p != NULL)
                        {
@@ -119,6 +120,4 @@ m_ison(struct Client *client_p, struct Client *source_p, int parc, const char *p
        *current_insert_point2 = '\0';
 
        sendto_one(source_p, "%s", buf);
-
-       return 0;
 }