X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/9f6c335332cb357b4bf5f991387087f907f6e55c..6e749518bbfc54d5ca30ae9d849d7b58c5e23f35:/modules/m_kline.c?ds=sidebyside diff --git a/modules/m_kline.c b/modules/m_kline.c index e557cb6..2f88823 100644 --- a/modules/m_kline.c +++ b/modules/m_kline.c @@ -25,27 +25,23 @@ */ #include "stdinc.h" -#include "tools.h" #include "channel.h" #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 "commio.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" #include "msg.h" #include "parse.h" #include "modules.h" -#include "event.h" #include "reject.h" static int mo_kline(struct Client *, struct Client *, int, const char **); @@ -177,12 +173,12 @@ 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; - DupString(aconf->host, host); - DupString(aconf->user, user); + aconf->host = rb_strdup(host); + aconf->user = rb_strdup(user); aconf->port = 0; /* Look for an oper reason */ @@ -192,7 +188,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, oper_reason++; if(!EmptyString(oper_reason)) - DupString(aconf->spasswd, oper_reason); + aconf->spasswd = rb_strdup(oper_reason); } if(tkline_time > 0) @@ -200,13 +196,13 @@ mo_kline(struct Client *client_p, struct Client *source_p, rb_snprintf(buffer, sizeof(buffer), "Temporary K-line %d min. - %s (%s)", (int) (tkline_time / 60), reason, current_date); - DupString(aconf->passwd, buffer); + aconf->passwd = rb_strdup(buffer); apply_tkline(source_p, aconf, reason, oper_reason, current_date, tkline_time); } else { rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date); - DupString(aconf->passwd, buffer); + aconf->passwd = rb_strdup(buffer); apply_kline(source_p, aconf, reason, oper_reason, current_date); } @@ -214,7 +210,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, { if(kline_queued == 0) { - eventAddOnce("check_klines", check_klines_event, NULL, + rb_event_addonce("check_klines", check_klines_event, NULL, ConfigFileEntry.kline_delay); kline_queued = 1; } @@ -296,8 +292,8 @@ handle_remote_kline(struct Client *source_p, int tkline_time, aconf = make_conf(); aconf->status = CONF_KILL; - DupString(aconf->user, user); - DupString(aconf->host, host); + aconf->user = rb_strdup(user); + aconf->host = rb_strdup(host); /* Look for an oper reason */ if((oper_reason = strchr(reason, '|')) != NULL) @@ -306,7 +302,7 @@ handle_remote_kline(struct Client *source_p, int tkline_time, oper_reason++; if(!EmptyString(oper_reason)) - DupString(aconf->spasswd, oper_reason); + aconf->spasswd = rb_strdup(oper_reason); } current_date = smalldate(); @@ -316,13 +312,13 @@ handle_remote_kline(struct Client *source_p, int tkline_time, rb_snprintf(buffer, sizeof(buffer), "Temporary K-line %d min. - %s (%s)", (int) (tkline_time / 60), reason, current_date); - DupString(aconf->passwd, buffer); + aconf->passwd = rb_strdup(buffer); apply_tkline(source_p, aconf, reason, oper_reason, current_date, tkline_time); } else { rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date); - DupString(aconf->passwd, buffer); + aconf->passwd = rb_strdup(buffer); apply_kline(source_p, aconf, reason, oper_reason, current_date); } @@ -330,7 +326,7 @@ handle_remote_kline(struct Client *source_p, int tkline_time, { if(kline_queued == 0) { - eventAddOnce("check_klines", check_klines_event, NULL, + rb_event_addonce("check_klines", check_klines_event, NULL, ConfigFileEntry.kline_delay); kline_queued = 1; } @@ -496,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); } @@ -511,7 +507,7 @@ static void apply_tkline(struct Client *source_p, struct ConfItem *aconf, const char *reason, const char *oper_reason, const char *current_date, int tkline_time) { - aconf->hold = CurrentTime + tkline_time; + aconf->hold = rb_current_time() + tkline_time; add_temp_kline(aconf); /* no oper reason.. */ @@ -557,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, "*"); } @@ -571,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; @@ -590,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; @@ -694,7 +694,7 @@ static int already_placed_kline(struct Client *source_p, const char *luser, const char *lhost, int tkline) { const char *reason, *p; - struct irc_sockaddr_storage iphost, *piphost; + struct rb_sockaddr_storage iphost, *piphost; struct ConfItem *aconf; int t, bits; @@ -704,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 @@ -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,