X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/cd3b9a5e7b4828da2dc9ea2cead77fd3b60c7335..80df74cfc567f06ce615079f3d9d84d11f56fea1:/modules/m_kline.c diff --git a/modules/m_kline.c b/modules/m_kline.c index 781538e..5bcfa70 100644 --- a/modules/m_kline.c +++ b/modules/m_kline.c @@ -29,14 +29,13 @@ #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" @@ -97,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; @@ -174,7 +172,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 +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]); @@ -493,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); } @@ -554,11 +552,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 +566,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 +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 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 +703,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 +715,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 +861,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 +931,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; }