]> jfr.im git - solanum.git/blobdiff - modules/m_svinfo.c
Add umode +I to allow users to hide their idle time (#220)
[solanum.git] / modules / m_svinfo.c
index a8e2dffa53d47bc136598f5545cd8fcb9092355a..6aaf9b16f1ab45c3571626532a4afe428438dfef 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_svinfo.c 494 2006-01-15 16:08:28Z jilles $
  */
 #include "stdinc.h"
 #include "client.h"
-#include "common.h"            /* TRUE bleah */
 #include "match.h"
 #include "ircd.h"
 #include "numeric.h"
 #include "parse.h"
 #include "modules.h"
 
-static int ms_svinfo(struct Client *, struct Client *, int, const char **);
+static const char svinfo_desc[] =
+       "Provides TS6 SVINFO command to ensure version and clock synchronisation";
 
+static void ms_svinfo(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
 struct Message svinfo_msgtab = {
-       "SVINFO", 0, 0, 0, MFLG_SLOW,
+       "SVINFO", 0, 0, 0, 0,
        {mg_unreg, mg_ignore, mg_ignore, {ms_svinfo, 5}, mg_ignore, mg_ignore}
 };
 
 mapi_clist_av1 svinfo_clist[] = { &svinfo_msgtab, NULL };
-DECLARE_MODULE_AV1(svinfo, NULL, NULL, svinfo_clist, NULL, NULL, "$Revision: 494 $");
+DECLARE_MODULE_AV2(svinfo, NULL, NULL, svinfo_clist, NULL, NULL, NULL, NULL, svinfo_desc);
 
 /*
  * ms_svinfo - SVINFO message handler
@@ -54,8 +53,8 @@ DECLARE_MODULE_AV1(svinfo, NULL, NULL, svinfo_clist, NULL, NULL, "$Revision: 494
  *      parv[3] = unused, send 0
  *      parv[4] = server's idea of UTC time
  */
-static int
-ms_svinfo(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+static void
+ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        signed long deltat;
        time_t theirtime;
@@ -63,18 +62,18 @@ ms_svinfo(struct Client *client_p, struct Client *source_p, int parc, const char
 
        /* SVINFO isnt remote. */
        if(source_p != client_p)
-               return 0;
+               return;
 
        if(TS_CURRENT < atoi(parv[2]) || atoi(parv[1]) < TS_MIN)
        {
                /* TS version is too low on one of the sides, drop the link */
-               sendto_realops_snomask(SNO_GENERAL, L_ALL,
+               sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
                                     "Link %s dropped, wrong TS protocol version (%s,%s)",
                                     source_p->name, parv[1], parv[2]);
-               rb_snprintf(squitreason, sizeof squitreason, "Incompatible TS version (%s,%s)",
+               snprintf(squitreason, sizeof squitreason, "Incompatible TS version (%s,%s)",
                                parv[1], parv[2]);
                exit_client(source_p, source_p, source_p, squitreason);
-               return 0;
+               return;
        }
 
        /*
@@ -86,7 +85,7 @@ ms_svinfo(struct Client *client_p, struct Client *source_p, int parc, const char
 
        if(deltat > ConfigFileEntry.ts_max_delta)
        {
-               sendto_realops_snomask(SNO_GENERAL, L_ALL,
+               sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
                                     "Link %s dropped, excessive TS delta"
                                     " (my TS=%ld, their TS=%ld, delta=%ld)",
                                     source_p->name,
@@ -95,11 +94,11 @@ ms_svinfo(struct Client *client_p, struct Client *source_p, int parc, const char
                     "Link %s dropped, excessive TS delta"
                     " (my TS=%ld, their TS=%ld, delta=%ld)",
                     log_client_name(source_p, SHOW_IP), (long) rb_current_time(), (long) theirtime, deltat);
-               rb_snprintf(squitreason, sizeof squitreason, "Excessive TS delta (my TS=%ld, their TS=%ld, delta=%ld)",
+               snprintf(squitreason, sizeof squitreason, "Excessive TS delta (my TS=%ld, their TS=%ld, delta=%ld)",
                                (long) rb_current_time(), (long) theirtime, deltat);
                disable_server_conf_autoconn(source_p->name);
                exit_client(source_p, source_p, source_p, squitreason);
-               return 0;
+               return;
        }
 
        if(deltat > ConfigFileEntry.ts_warn_delta)
@@ -109,7 +108,4 @@ ms_svinfo(struct Client *client_p, struct Client *source_p, int parc, const char
                                     " (my TS=%ld, their TS=%ld, delta=%ld)",
                                     source_p->name, (long) rb_current_time(), (long) theirtime, deltat);
        }
-
-       return 0;
 }
-