]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_kline.c
Log unknown class in auth errors to ircd.log as well.
[irc/rqf/shadowircd.git] / modules / m_kline.c
index 781538e25d9735a54a2fea034e3c394b4db68e5a..77aa15d5aa6fd2512fede4bfafe39500ea62a7e2 100644 (file)
 #include "class.h"
 #include "client.h"
 #include "common.h"
-#include "irc_string.h"
-#include "sprintf_irc.h"
+#include "match.h"
 #include "ircd.h"
 #include "hostmask.h"
 #include "numeric.h"
 #include "s_conf.h"
 #include "s_newconf.h"
-#include "s_log.h"
+#include "logger.h"
 #include "send.h"
 #include "hash.h"
 #include "s_serv.h"
@@ -174,7 +173,7 @@ mo_kline(struct Client *client_p, struct Client *source_p,
        if(already_placed_kline(source_p, user, host, tkline_time))
                return 0;
 
-       set_time();
+       rb_set_time();
        current_date = smalldate();
        aconf = make_conf();
        aconf->status = CONF_KILL;
@@ -434,8 +433,8 @@ mo_unkline(struct Client *client_p, struct Client *source_p, int parc, const cha
 static int
 ms_unkline(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
-       /* parv[0]  parv[1]        parv[2]  parv[3]
-        * oper     target server  user     host    */
+       /* source_p  parv[1]        parv[2]  parv[3]
+        * oper      target server  user     host    */
        propagate_generic(source_p, "UNKLINE", parv[1], CAP_UNKLN,
                        "%s %s", parv[2], parv[3]);
 
@@ -493,7 +492,7 @@ static void
 apply_kline(struct Client *source_p, struct ConfItem *aconf,
            const char *reason, const char *oper_reason, const char *current_date)
 {
-       add_conf_by_address(aconf->host, CONF_KILL, aconf->user, aconf);
+       add_conf_by_address(aconf->host, CONF_KILL, aconf->user, NULL, aconf);
        write_confitem(KLINE_TYPE, source_p, aconf->user, aconf->host,
                       reason, oper_reason, current_date, 0);
 }
@@ -554,11 +553,11 @@ find_user_host(struct Client *source_p, const char *userhost, char *luser, char
        {
                *(hostp++) = '\0';      /* short and squat */
                if(*userhost)
-                       strlcpy(luser, userhost, USERLEN + 1);  /* here is my user */
+                       rb_strlcpy(luser, userhost, USERLEN + 1);       /* here is my user */
                else
                        strcpy(luser, "*");
                if(*hostp)
-                       strlcpy(lhost, hostp, HOSTLEN + 1);     /* here is my host */
+                       rb_strlcpy(lhost, hostp, HOSTLEN + 1);  /* here is my host */
                else
                        strcpy(lhost, "*");
                }
@@ -568,11 +567,14 @@ find_user_host(struct Client *source_p, const char *userhost, char *luser, char
                 * its a nick, which support was removed for.
                 */
                if(strchr(userhost, '.') == NULL && strchr(userhost, ':') == NULL)
+               {
+                       sendto_one_notice(source_p, ":K-Line must be a user@host or host");
                        return 0;
+               }
 
                luser[0] = '*'; /* no @ found, assume its *@somehost */
                luser[1] = '\0';
-               strlcpy(lhost, userhost, HOSTLEN + 1);
+               rb_strlcpy(lhost, userhost, HOSTLEN + 1);
        }
 
        return 1;
@@ -587,8 +589,9 @@ find_user_host(struct Client *source_p, const char *userhost, char *luser, char
 static int
 valid_user_host(struct Client *source_p, const char *luser, const char *lhost)
 {
-       /* # is invalid, as is '!' (n!u@h kline) */
-       if(strchr(lhost, '#') || strchr(luser, '#') || strchr(luser, '!'))
+       /* # is invalid, as are '!' (n!u@h kline) and '@' (u@@h kline) */
+       if(strchr(lhost, '#') || strchr(luser, '#') || strchr(luser, '!') ||
+                       strchr(lhost, '@'))
        {
                sendto_one_notice(source_p, ":Invalid K-Line");
                return 0;
@@ -701,7 +704,7 @@ already_placed_kline(struct Client *source_p, const char *luser, const char *lho
                bits = 0;
                if((t = parse_netmask(lhost, (struct sockaddr *)&iphost, &bits)) != HM_HOST)
                {
-#ifdef IPV6
+#ifdef RB_IPV6
                        if(t == HM_IPV6)
                                t = AF_INET6;
                        else
@@ -713,7 +716,7 @@ already_placed_kline(struct Client *source_p, const char *luser, const char *lho
                else
                        piphost = NULL;
 
-               aconf = find_conf_by_address(lhost, NULL, NULL, (struct sockaddr *)piphost, CONF_KILL, t, luser);
+               aconf = find_conf_by_address(lhost, NULL, NULL, (struct sockaddr *)piphost, CONF_KILL, t, luser, NULL);
                if (aconf != NULL)
                {
                        /* The above was really a lookup of a single IP,
@@ -859,7 +862,7 @@ remove_permkline_match(struct Client *source_p, struct ConfItem *aconf)
        ilog(L_KLINE, "UK %s %s %s",
                get_oper_name(source_p), user, host);
 
-       /* remove_reject_mask(aconf->user, aconf->host); XXX <- gonna go on bandb */
+       remove_reject_mask(aconf->user, aconf->host);
        delete_one_address_conf(aconf->host, aconf);
 
        return;
@@ -929,7 +932,7 @@ remove_temp_kline(struct Client *source_p, struct ConfItem *aconf)
                                        get_oper_name(source_p),
                                        aconf->user, aconf->host);
                                rb_dlinkDestroy(ptr, &temp_klines[i]);
-                               /* remove_reject_mask(aconf->user, aconf->host); XXX */
+                               remove_reject_mask(aconf->user, aconf->host);
                                delete_one_address_conf(aconf->host, aconf);
                                return YES;
                        }