]> jfr.im git - irc/freenode/ircd-seven.git/commitdiff
Merge m_encap into the ircd core so that it does not cause issues with modrestart
authormniip <redacted>
Wed, 28 Dec 2016 15:10:00 +0000 (18:10 +0300)
committerEd Kellett <redacted>
Wed, 28 Dec 2016 20:56:17 +0000 (20:56 +0000)
modules/m_encap.c [deleted file]
src/parse.c

diff --git a/modules/m_encap.c b/modules/m_encap.c
deleted file mode 100644 (file)
index 66c7d83..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*  modules/m_encap.c
- *  Copyright (C) 2003-2005 ircd-ratbox development team
- *  Copyright (C) 2003 Lee Hardy <lee@leeh.co.uk>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1.Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * 2.Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * 3.The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * 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_encap.c 254 2005-09-21 23:35:12Z nenolod $
- */
-
-#include "stdinc.h"
-#include "send.h"
-#include "channel.h"
-#include "client.h"
-#include "common.h"
-#include "config.h"
-#include "ircd.h"
-#include "numeric.h"
-#include "s_serv.h"
-#include "hash.h"
-#include "msg.h"
-#include "parse.h"
-#include "modules.h"
-
-static int ms_encap(struct Client *client_p, struct Client *source_p,
-                    int parc, const char *parv[]);
-
-struct Message encap_msgtab = {
-       "ENCAP", 0, 0, 0, MFLG_SLOW,
-       {mg_ignore, mg_ignore, {ms_encap, 3}, {ms_encap, 3}, mg_ignore, mg_ignore}
-};
-
-mapi_clist_av1 encap_clist[] = { &encap_msgtab, NULL };
-DECLARE_MODULE_AV1(encap, NULL, NULL, encap_clist, NULL, NULL, "$Revision: 254 $");
-
-/* ms_encap()
- *
- * parv[1] - destination server
- * parv[2] - subcommand
- * parv[3] - parameters
- */
-static int
-ms_encap(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
-{
-       char buffer[BUFSIZE];
-       char *ptr;
-       int cur_len = 0;
-       int len;
-       int i;
-
-       ptr = buffer;
-       
-       for(i = 1; i < parc - 1; i++)
-       {
-               len = strlen(parv[i]) + 1;
-
-               /* ugh, not even at the last parameter, just bail --fl */
-               if((size_t)(cur_len + len) >= sizeof(buffer))
-                       return 0;
-
-               rb_snprintf(ptr, sizeof(buffer) - cur_len, "%s ", parv[i]);
-               cur_len += len;
-               ptr += len;
-       }
-
-       len = strlen(parv[i]);
-
-       /* if its a command without parameters, dont prepend a ':' */
-       if(parc == 3)
-               rb_snprintf(ptr, sizeof(buffer) - cur_len, "%s", parv[2]);
-       else
-               rb_snprintf(ptr, sizeof(buffer) - cur_len, ":%s", parv[parc-1]);
-
-       /* add a trailing \0 if it was too long */
-       if((cur_len + len) >= BUFSIZE)
-               buffer[BUFSIZE-1] = '\0';
-
-       sendto_match_servs(source_p, parv[1], CAP_ENCAP, NOCAPS,
-                          "ENCAP %s", buffer);
-
-       /* if it matches us, find a matching handler and call it */
-       if(match(parv[1], me.name))
-               handle_encap(client_p, source_p, parv[2], parc - 2, parv + 2);
-
-       return 0;
-}
-
-
index 3020a64ac0eb1d3abf35cd7ac7fe715ff9b0ac22..054d7a319f4511fafe1fdbfd8a56a61f1373424e 100644 (file)
@@ -41,6 +41,7 @@
 #include "s_conf.h"
 #include "s_serv.h"
 #include "packet.h"
+#include "config.h"
 
 static struct Dictionary *cmd_dict = NULL;
 struct Dictionary *alias_dict = NULL;
@@ -396,6 +397,63 @@ handle_encap(struct Client *client_p, struct Client *source_p,
        (*handler) (client_p, source_p, parc, parv);
 }
 
+/* ms_encap()
+ *
+ * parv[1] - destination server
+ * parv[2] - subcommand
+ * parv[3] - parameters
+ */
+static int
+ms_encap(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+{
+       char buffer[BUFSIZE];
+       char *ptr;
+       int cur_len = 0;
+       int len;
+       int i;
+
+       ptr = buffer;
+
+       for(i = 1; i < parc - 1; i++)
+       {
+               len = strlen(parv[i]) + 1;
+
+               /* ugh, not even at the last parameter, just bail --fl */
+               if((size_t)(cur_len + len) >= sizeof(buffer))
+                       return 0;
+
+               rb_snprintf(ptr, sizeof(buffer) - cur_len, "%s ", parv[i]);
+               cur_len += len;
+               ptr += len;
+       }
+
+       len = strlen(parv[i]);
+
+       /* if its a command without parameters, dont prepend a ':' */
+       if(parc == 3)
+               rb_snprintf(ptr, sizeof(buffer) - cur_len, "%s", parv[2]);
+       else
+               rb_snprintf(ptr, sizeof(buffer) - cur_len, ":%s", parv[parc-1]);
+
+       /* add a trailing \0 if it was too long */
+       if((cur_len + len) >= BUFSIZE)
+               buffer[BUFSIZE-1] = '\0';
+
+       sendto_match_servs(source_p, parv[1], CAP_ENCAP, NOCAPS,
+                          "ENCAP %s", buffer);
+
+       /* if it matches us, find a matching handler and call it */
+       if(match(parv[1], me.name))
+               handle_encap(client_p, source_p, parv[2], parc - 2, parv + 2);
+
+       return 0;
+}
+
+struct Message encap_msgtab = {
+       "ENCAP", 0, 0, 0, MFLG_SLOW,
+       {mg_ignore, mg_ignore, {ms_encap, 3}, {ms_encap, 3}, mg_ignore, mg_ignore}
+};
+
 /*
  * clear_hash_parse()
  *
@@ -409,6 +467,7 @@ void
 clear_hash_parse()
 {
        cmd_dict = irc_dictionary_create(strcasecmp);
+       mod_add_cmd(&encap_msgtab);
 }
 
 /* mod_add_cmd