}
aconf = find_address_conf(client_p->host, client_p->sockhost,
+ IsGotId(client_p) ? client_p->username : "webirc",
IsGotId(client_p) ? client_p->username : "webirc",
(struct sockaddr *) &client_p->localClient->ip,
client_p->localClient->ip.ss_family);
if (aconf == NULL || !(aconf->status & CONF_CLIENT))
return 0;
- if (!IsConfDoSpoofIp(aconf) || irccmp(aconf->info.name, "webirc."))
+ if (!IsConfDoSpoofIp(aconf) || irccmp(aconf->name, "webirc."))
{
/* XXX */
sendto_one(source_p, "NOTICE * :Not a CGI:IRC auth block");
return 0;
}
+
strlcpy(source_p->sockhost, parv[4], sizeof(source_p->sockhost));
+
if(strlen(parv[3]) <= HOSTLEN)
strlcpy(source_p->host, parv[3], sizeof(source_p->host));
else
strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host));
-
- rb_inet_pton_sock(parv[4], (struct sockaddr *)&source_p->localClient->ip);
+
+ del_unknown_ip(source_p);
+ inetpton_sock(parv[4], (struct sockaddr *)&source_p->localClient->ip);
/* Check dlines now, k/glines will be checked on registration */
- if((aconf = find_dline((struct sockaddr *)&source_p->localClient->ip)))
+ if((aconf = find_dline((struct sockaddr *)&source_p->localClient->ip,
+ source_p->localClient->ip.ss_family)))
{
if(!(aconf->status & CONF_EXEMPTDLINE))
{