]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_capab.c
Add umode +R to doc/services.txt.
[irc/rqf/shadowircd.git] / modules / m_capab.c
index e915f4062a11c0bf21caafdf4876cbe71bd62d72..3e7de45d7c2e87214ba2f45a9f87e04acf7c7a5d 100644 (file)
@@ -26,7 +26,7 @@
 
 #include "stdinc.h"
 #include "client.h"
-#include "irc_string.h"
+#include "match.h"
 #include "s_serv.h"
 #include "s_conf.h"
 #include "msg.h"
@@ -50,7 +50,6 @@ DECLARE_MODULE_AV1(capab, NULL, NULL, capab_clist, NULL, NULL, "$Revision: 1295
 
 /*
  * mr_capab - CAPAB message handler
- *      parv[0] = sender prefix
  *      parv[1] = space-separated list of capabilities
  *
  */
@@ -78,13 +77,13 @@ mr_capab(struct Client *client_p, struct Client *source_p, int parc, const char
        else
                client_p->localClient->caps |= CAP_CAP;
 
-       MyFree(client_p->localClient->fullcaps);
-       DupString(client_p->localClient->fullcaps, parv[1]);
+       rb_free(client_p->localClient->fullcaps);
+       client_p->localClient->fullcaps = rb_strdup(parv[1]);
 
        for (i = 1; i < parc; i++)
        {
                char *t = LOCAL_COPY(parv[i]);
-               for (s = strtoken(&p, t, " "); s; s = strtoken(&p, NULL, " "))
+               for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p))
                {
                        for (cap = captab; cap->name; cap++)
                        {
@@ -114,11 +113,14 @@ me_gcap(struct Client *client_p, struct Client *source_p,
 
        /* already had GCAPAB?! */
        if(!EmptyString(source_p->serv->fullcaps))
-               return 0;
+       {
+               source_p->serv->caps = 0;
+               rb_free(source_p->serv->fullcaps);
+       }
 
-       DupString(source_p->serv->fullcaps, parv[1]);
+       source_p->serv->fullcaps = rb_strdup(parv[1]);
 
-       for (s = strtoken(&p, t, " "); s; s = strtoken(&p, NULL, " "))
+       for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p))
        {
                for (cap = captab; cap->name; cap++)
                {