]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_kline.c
kline: Fix oper reasons.
[irc/rqf/shadowircd.git] / modules / m_kline.c
index 8e72860b418304e8dadfeeee6b3231bfa8000335..2056e4d2fd381defba0df8431b46d33060014eba 100644 (file)
@@ -44,6 +44,7 @@
 #include "modules.h"
 #include "reject.h"
 #include "bandbi.h"
+#include "operhash.h"
 
 static int mo_kline(struct Client *, struct Client *, int, const char **);
 static int ms_kline(struct Client *, struct Client *, int, const char **);
@@ -98,7 +99,6 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char
        char def[] = "No Reason";
        char user[USERLEN + 2];
        char host[HOSTLEN + 2];
-       char buffer[IRCD_BUFSIZE];
        char *reason = def;
        char *oper_reason;
        const char *target_server = NULL;
@@ -174,6 +174,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char
        aconf->host = rb_strdup(host);
        aconf->user = rb_strdup(user);
        aconf->port = 0;
+       aconf->info.oper = operhash_add(get_oper_name(source_p));
 
        /* Look for an oper reason */
        if((oper_reason = strchr(reason, '|')) != NULL)
@@ -184,20 +185,12 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char
                if(!EmptyString(oper_reason))
                        aconf->spasswd = rb_strdup(oper_reason);
        }
+       aconf->passwd = rb_strdup(reason);
 
        if(tkline_time > 0)
-       {
-               rb_snprintf(buffer, sizeof(buffer),
-                           "Temporary K-line %d min. - %s",
-                           (int) (tkline_time / 60), reason);
-               aconf->passwd = rb_strdup(buffer);
                apply_tkline(source_p, aconf, reason, oper_reason, tkline_time);
-       }
        else
-       {
-               aconf->passwd = rb_strdup(reason);
                apply_kline(source_p, aconf, reason, oper_reason);
-       }
 
        if(ConfigFileEntry.kline_delay)
        {
@@ -262,7 +255,6 @@ static void
 handle_remote_kline(struct Client *source_p, int tkline_time,
                    const char *user, const char *host, const char *kreason)
 {
-       char buffer[BUFSIZE];
        char *reason = LOCAL_COPY(kreason);
        struct ConfItem *aconf = NULL;
        char *oper_reason;
@@ -285,6 +277,7 @@ handle_remote_kline(struct Client *source_p, int tkline_time,
        aconf->created = rb_current_time();
        aconf->user = rb_strdup(user);
        aconf->host = rb_strdup(host);
+       aconf->info.oper = operhash_add(get_oper_name(source_p));
 
        /* Look for an oper reason */
        if((oper_reason = strchr(reason, '|')) != NULL)
@@ -295,20 +288,12 @@ handle_remote_kline(struct Client *source_p, int tkline_time,
                if(!EmptyString(oper_reason))
                        aconf->spasswd = rb_strdup(oper_reason);
        }
+       aconf->passwd = rb_strdup(reason);
 
        if(tkline_time > 0)
-       {
-               rb_snprintf(buffer, sizeof(buffer),
-                           "Temporary K-line %d min. - %s",
-                           (int) (tkline_time / 60), reason);
-               aconf->passwd = rb_strdup(buffer);
                apply_tkline(source_p, aconf, reason, oper_reason, tkline_time);
-       }
        else
-       {
-               aconf->passwd = rb_strdup(reason);
                apply_kline(source_p, aconf, reason, oper_reason);
-       }
 
        if(ConfigFileEntry.kline_delay)
        {