]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_kline.c
burst_TS6(): assume users have a UID
[irc/rqf/shadowircd.git] / modules / m_kline.c
index 1dad6d9a5d782d8ec67c6159918c9f9c984e393a..2f888237325da5dfc3bfca6d780f42ba25133624 100644 (file)
@@ -29,7 +29,7 @@
 #include "class.h"
 #include "client.h"
 #include "common.h"
-#include "irc_string.h"
+#include "match.h"
 #include "ircd.h"
 #include "hostmask.h"
 #include "numeric.h"
@@ -492,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);
 }
@@ -567,7 +567,10 @@ 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';
@@ -586,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;
@@ -712,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,