]> jfr.im git - solanum.git/blobdiff - modules/m_tb.c
Mint CLICAP_FLAGS_PRIORITY
[solanum.git] / modules / m_tb.c
index 769f773ffbb270178bb09f8f015c3c12f28b08c1..d925b457df58d3156ba215351820be5ff2555293 100644 (file)
@@ -32,8 +32,7 @@
 #include "send.h"
 #include "channel.h"
 #include "client.h"
-#include "common.h"
-#include "config.h"
+#include "defaults.h"
 #include "ircd.h"
 #include "match.h"
 #include "s_conf.h"
 #include "hash.h"
 #include "s_serv.h"
 
-static int ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
-static int ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static const char tb_desc[] =
+       "Provides TS6 TB and ETB commands for topic bursting between servers";
+
+static void ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static void ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
 
 struct Message tb_msgtab = {
        "TB", 0, 0, 0, 0,
@@ -56,7 +58,7 @@ struct Message etb_msgtab = {
 };
 
 mapi_clist_av1 tb_clist[] =  { &tb_msgtab, &etb_msgtab, NULL };
-DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, NULL);
+DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, tb_desc);
 
 /* m_tb()
  *
@@ -65,7 +67,7 @@ DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, NULL);
  * parv[3] - optional topicwho/topic
  * parv[4] - topic
  */
-static int
+static void
 ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Channel *chptr;
@@ -77,7 +79,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
        chptr = find_channel(parv[1]);
 
        if(chptr == NULL)
-               return 0;
+               return;
 
        newtopicts = atol(parv[2]);
 
@@ -99,7 +101,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
        }
 
        if (EmptyString(newtopic))
-               return 0;
+               return;
 
        if(chptr->topic == NULL || chptr->topic_time > newtopicts)
        {
@@ -108,10 +110,10 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
                 * same topic just drop the message --fl
                 */
                if(chptr->topic != NULL && strcmp(chptr->topic, newtopic) == 0)
-                       return 0;
+                       return;
 
                set_channel_topic(chptr, newtopic, newtopicwho, newtopicts);
-               sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
+               sendto_channel_local(fakesource_p, ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
                                     fakesource_p->name, chptr->chname, newtopic);
                sendto_server(client_p, chptr, CAP_TB|CAP_TS6, NOCAPS,
                              ":%s TB %s %ld %s%s:%s",
@@ -119,8 +121,6 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
                              ConfigChannel.burst_topicwho ? chptr->topic_info : "",
                              ConfigChannel.burst_topicwho ? " " : "", chptr->topic);
        }
-
-       return 0;
 }
 
 /* ms_etb()
@@ -131,7 +131,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
  * parv[4] - topicwho
  * parv[5] - topic
  */
-static int
+static void
 ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Channel *chptr;
@@ -145,7 +145,7 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
        chptr = find_channel(parv[2]);
 
        if(chptr == NULL)
-               return 0;
+               return;
 
        newtopicts = atol(parv[3]);
 
@@ -177,7 +177,7 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
                if(textchange)
                {
                        if (IsPerson(fakesource_p))
-                               sendto_channel_local(ALL_MEMBERS, chptr,
+                               sendto_channel_local(fakesource_p, ALL_MEMBERS, chptr,
                                                ":%s!%s@%s TOPIC %s :%s",
                                                fakesource_p->name,
                                                fakesource_p->username,
@@ -185,7 +185,7 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
                                                chptr->chname,
                                                newtopic);
                        else
-                               sendto_channel_local(ALL_MEMBERS, chptr,
+                               sendto_channel_local(fakesource_p, ALL_MEMBERS, chptr,
                                                ":%s TOPIC %s :%s",
                                                fakesource_p->name,
                                                chptr->chname, newtopic);
@@ -247,6 +247,4 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
                                      me.id, chptr->chname, chptr->chname);
                }
        }
-
-       return 0;
 }