diff --git a/extensions/m_webirc.c b/extensions/m_webirc.c index 1b42029..2f71fa1 100644 --- a/extensions/m_webirc.c +++ b/extensions/m_webirc.c @@ -87,12 +87,13 @@ mr_webirc(struct Client *client_p, struct Client *source_p, int parc, const char } 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"); @@ -117,12 +118,14 @@ mr_webirc(struct Client *client_p, struct Client *source_p, int parc, const char 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); /* Check dlines now, k/glines will be checked on registration */