]> jfr.im git - solanum.git/blobdiff - modules/m_etrace.c
reference.conf: add drain_reason
[solanum.git] / modules / m_etrace.c
index d7c9049f71e9910033743c5b79340628d881abe0..193d842be0510aad4887bef9a15f39b0edc4f378 100644 (file)
@@ -35,7 +35,6 @@
 #include "hook.h"
 #include "client.h"
 #include "hash.h"
-#include "common.h"
 #include "hash.h"
 #include "match.h"
 #include "ircd.h"
 #include "logger.h"
 #include "supported.h"
 
-static int mo_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
-static int me_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
-static int m_chantrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
-static int mo_masktrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static const char etrace_desc[] =
+    "Provides enhanced tracing facilities to opers (ETRACE, CHANTRACE, and MASKTRACE)";
+
+static void mo_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static void me_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static void m_chantrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static void mo_masktrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
 
 struct Message etrace_msgtab = {
        "ETRACE", 0, 0, 0, 0,
@@ -84,9 +86,6 @@ _moddeinit(void)
 
 mapi_clist_av1 etrace_clist[] = { &etrace_msgtab, &chantrace_msgtab, &masktrace_msgtab, NULL };
 
-static const char etrace_desc[] =
-    "Provides enhanced tracing facilities to opers (ETRACE, CHANTRACE, and MASKTRACE)";
-
 DECLARE_MODULE_AV2(etrace, _modinit, _moddeinit, etrace_clist, NULL, NULL, NULL, NULL, etrace_desc);
 
 static void do_etrace(struct Client *source_p, int ipv4, int ipv6);
@@ -101,19 +100,17 @@ static const char *spoofed_sockhost = "0";
  *      parv[1] = options [or target]
  *     parv[2] = [target]
  */
-static int
+static void
 mo_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        if(parc > 1 && !EmptyString(parv[1]))
        {
                if(!irccmp(parv[1], "-full"))
                        do_etrace_full(source_p);
-#ifdef RB_IPV6
                else if(!irccmp(parv[1], "-v6"))
                        do_etrace(source_p, 0, 1);
                else if(!irccmp(parv[1], "-v4"))
                        do_etrace(source_p, 1, 0);
-#endif
                else
                {
                        struct Client *target_p = find_named_person(parv[1]);
@@ -135,17 +132,15 @@ mo_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
        }
        else
                do_etrace(source_p, 1, 1);
-
-       return 0;
 }
 
-static int
+static void
 me_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Client *target_p;
 
        if(!IsOper(source_p) || parc < 2 || EmptyString(parv[1]))
-               return 0;
+               return;
 
        /* we cant etrace remote clients.. we shouldnt even get sent them */
        if((target_p = find_person(parv[1])) && MyClient(target_p))
@@ -153,8 +148,6 @@ me_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
 
         sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE),
                                target_p ? target_p->name : parv[1]);
-
-       return 0;
 }
 
 static void
@@ -168,15 +161,13 @@ do_etrace(struct Client *source_p, int ipv4, int ipv6)
        {
                target_p = ptr->data;
 
-#ifdef RB_IPV6
-               if((!ipv4 && target_p->localClient->ip.ss_family == AF_INET) ||
-                  (!ipv6 && target_p->localClient->ip.ss_family == AF_INET6))
+               if((!ipv4 && GET_SS_FAMILY(&target_p->localClient->ip) == AF_INET) ||
+                  (!ipv6 && GET_SS_FAMILY(&target_p->localClient->ip) == AF_INET6))
                        continue;
-#endif
 
                sendto_one(source_p, form_str(RPL_ETRACE),
                           me.name, source_p->name,
-                          IsOper(target_p) ? "Oper" : "User",
+                          SeesOper(target_p, source_p) ? "Oper" : "User",
                           get_client_class(target_p),
                           target_p->name, target_p->username, target_p->host,
                           show_ip(source_p, target_p) ? target_p->sockhost : "255.255.255.255",
@@ -215,21 +206,21 @@ do_single_etrace(struct Client *source_p, struct Client *target_p)
        if(!show_ip(source_p, target_p))
                sendto_one(source_p, form_str(RPL_ETRACEFULL),
                                me.name, source_p->name,
-                               IsOper(target_p) ? "Oper" : "User",
+                               SeesOper(target_p, source_p) ? "Oper" : "User",
                                get_client_class(target_p),
                                target_p->name, target_p->username, target_p->host,
                                "255.255.255.255", "<hidden> <hidden>", target_p->info);
        else
                sendto_one(source_p, form_str(RPL_ETRACEFULL),
                                me.name, source_p->name,
-                               IsOper(target_p) ? "Oper" : "User",
+                               SeesOper(target_p, source_p) ? "Oper" : "User",
                                get_client_class(target_p),
                                target_p->name, target_p->username,
                                target_p->host, target_p->sockhost,
                                target_p->localClient->fullcaps, target_p->info);
 }
 
-static int
+static void
 m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        struct Client *target_p;
@@ -251,7 +242,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
                {
                        sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
                                        me.name, source_p->name, "CHANTRACE");
-                       return 0;
+                       return;
                }
        }
 
@@ -259,7 +250,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
        {
                sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL),
                                name);
-               return 0;
+               return;
        }
 
        /* dont report operspys for nonexistant channels. */
@@ -270,7 +261,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
        {
                sendto_one_numeric(source_p, ERR_NOTONCHANNEL, form_str(ERR_NOTONCHANNEL),
                                chptr->chname);
-               return 0;
+               return;
        }
 
        RB_DLINK_FOREACH(ptr, chptr->members.head)
@@ -287,7 +278,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
 
                sendto_one(source_p, form_str(RPL_ETRACE),
                                me.name, source_p->name,
-                               IsOper(target_p) ? "Oper" : "User",
+                               SeesOper(target_p, source_p) ? "Oper" : "User",
                                /* class field -- pretend its server.. */
                                target_p->servptr->name,
                                target_p->name, target_p->username, target_p->host,
@@ -295,7 +286,6 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
        }
 
        sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE), me.name);
-       return 0;
 }
 
 static void
@@ -333,7 +323,7 @@ match_masktrace(struct Client *source_p, rb_dlink_list *list,
 
                        sendto_one(source_p, form_str(RPL_ETRACE),
                                me.name, source_p->name,
-                               IsOper(target_p) ? "Oper" : "User",
+                               SeesOper(target_p, source_p) ? "Oper" : "User",
                                /* class field -- pretend its server.. */
                                target_p->servptr->name,
                                target_p->name, target_p->username, target_p->host,
@@ -342,7 +332,7 @@ match_masktrace(struct Client *source_p, rb_dlink_list *list,
        }
 }
 
-static int
+static void
 mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
        const char *parv[])
 {
@@ -372,7 +362,7 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
        if((hostname = strchr(name, '@')) == NULL)
        {
                sendto_one_notice(source_p, ":Invalid parameters");
-               return 0;
+               return;
        }
 
        *hostname++ = '\0';
@@ -387,7 +377,7 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
        if(EmptyString(username) || EmptyString(hostname))
        {
                sendto_one_notice(source_p, ":Invalid parameters");
-               return 0;
+               return;
        }
 
        if(operspy) {
@@ -407,5 +397,4 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
                match_masktrace(source_p, &lclient_list, username, hostname, name, gecos);
 
        sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE), me.name);
-       return 0;
 }