*/
#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 **);
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 */
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
if(tkline_time > 0)
{
- ircsnprintf(buffer, sizeof(buffer),
+ 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
{
- ircsnprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, buffer);
+ rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
+ aconf->passwd = rb_strdup(buffer);
apply_kline(source_p, aconf, reason, oper_reason, current_date);
}
{
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;
}
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)
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
current_date = smalldate();
if(tkline_time > 0)
{
- ircsnprintf(buffer, sizeof(buffer),
+ 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
{
- ircsnprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, buffer);
+ rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
+ aconf->passwd = rb_strdup(buffer);
apply_kline(source_p, aconf, reason, oper_reason, current_date);
}
{
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;
}
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);
}
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.. */
{
*(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, "*");
}
* 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;
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;
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;
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
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,
host = aconf->host;
user = aconf->user;
- ircsnprintf(temppath, sizeof(temppath),
+ rb_snprintf(temppath, sizeof(temppath),
"%s.tmp", ConfigFileEntry.klinefile);
filename = get_conf_name(KLINE_TYPE);
ilog(L_KLINE, "UK %s %s %s",
get_oper_name(source_p),
aconf->user, aconf->host);
- dlinkDestroy(ptr, &temp_klines[i]);
+ rb_dlinkDestroy(ptr, &temp_klines[i]);
remove_reject_mask(aconf->user, aconf->host);
delete_one_address_conf(aconf->host, aconf);
return YES;