]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_kline.c
presence: m_presence module: Use safer get_metadata() where appropriate, to avoid...
[irc/rqf/shadowircd.git] / modules / m_kline.c
index fd9a20592c85453e281acb53c3b167afa1189a09..5407d4c5fd9bad245438e063c233454c16bfffe7 100644 (file)
@@ -96,11 +96,10 @@ static int
 mo_kline(struct Client *client_p, struct Client *source_p,
         int parc, const char **parv)
 {
-       char def[] = "No Reason";
        char user[USERLEN + 2];
        char host[HOSTLEN + 2];
        char buffer[IRCD_BUFSIZE];
-       char *reason = def;
+       char *reason;
        char *oper_reason;
        const char *current_date;
        const char *target_server = NULL;
@@ -433,8 +432,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]);
 
@@ -492,7 +491,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);
 }
@@ -589,8 +588,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 are '!' (n!u@h kline) and '@' (u@@h kline) */
-       if(strchr(lhost, '#') || strchr(luser, '#') || strchr(luser, '!') ||
+       /* # and " are invalid, as are '!' (n!u@h kline) and '@' (u@@h kline) */
+       if(strchr(lhost, '#') || strchr(luser, '#') || strchr(lhost, '"') ||
+                       strchr(luser, '"') || strchr(luser, '!') ||
                        strchr(lhost, '@'))
        {
                sendto_one_notice(source_p, ":Invalid K-Line");
@@ -716,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,