]> jfr.im git - solanum.git/blobdiff - modules/m_tb.c
modules: Add AV2 descriptions to all m_t* modules
[solanum.git] / modules / m_tb.c
index 539f58798ab714049ecbbcb10306ae37645960d7..a66dab6b6e09b6e6da5f50eefbad3ebbb385e212 100644 (file)
@@ -1,5 +1,5 @@
 /* modules/m_tb.c
- * 
+ *
  *  Copyright (C) 2003 Lee Hardy <lee@leeh.co.uk>
  *  Copyright (C) 2003-2005 ircd-ratbox development team
  *
@@ -26,8 +26,6 @@
  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id: m_tb.c 1349 2006-05-17 17:37:46Z jilles $
  */
 
 #include "stdinc.h"
 #include "hash.h"
 #include "s_serv.h"
 
-static int ms_tb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
-static int ms_etb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+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";
 
 struct Message tb_msgtab = {
-       "TB", 0, 0, 0, MFLG_SLOW,
+       "TB", 0, 0, 0, 0,
        {mg_unreg, mg_ignore, mg_ignore, {ms_tb, 4}, mg_ignore, mg_ignore}
 };
 
 struct Message etb_msgtab = {
-       "ETB", 0, 0, 0, MFLG_SLOW,
+       "ETB", 0, 0, 0, 0,
        {mg_unreg, mg_ignore, {ms_etb, 5}, {ms_etb, 5}, mg_ignore, mg_ignore}
 };
 
 mapi_clist_av1 tb_clist[] =  { &tb_msgtab, &etb_msgtab, NULL };
-DECLARE_MODULE_AV1(tb, NULL, NULL, tb_clist, NULL, NULL, "$Revision: 1349 $");
+DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, tb_desc);
 
 /* m_tb()
  *
@@ -68,7 +68,7 @@ DECLARE_MODULE_AV1(tb, NULL, NULL, tb_clist, NULL, NULL, "$Revision: 1349 $");
  * parv[4] - topic
  */
 static int
-ms_tb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Channel *chptr;
        const char *newtopic;
@@ -134,7 +134,7 @@ ms_tb(struct Client *client_p, struct Client *source_p, int parc, const char *pa
  * parv[5] - topic
  */
 static int
-ms_etb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Channel *chptr;
        const char *newtopic;
@@ -177,9 +177,21 @@ ms_etb(struct Client *client_p, struct Client *source_p, int parc, const char *p
                 * but do propagate the new topicts/topicwho to servers.
                 */
                if(textchange)
-                       sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
-                                       fakesource_p->name, chptr->chname,
-                                       newtopic);
+               {
+                       if (IsPerson(fakesource_p))
+                               sendto_channel_local(ALL_MEMBERS, chptr,
+                                               ":%s!%s@%s TOPIC %s :%s",
+                                               fakesource_p->name,
+                                               fakesource_p->username,
+                                               fakesource_p->host,
+                                               chptr->chname,
+                                               newtopic);
+                       else
+                               sendto_channel_local(ALL_MEMBERS, chptr,
+                                               ":%s TOPIC %s :%s",
+                                               fakesource_p->name,
+                                               chptr->chname, newtopic);
+               }
                /* Propagate channelts as given, because an older channelts
                 * forces any change.
                 */