| 93 |
|
static void |
| 94 |
|
mr_webirc(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) |
| 95 |
|
{ |
| 96 |
< |
struct AccessItem *aconf = NULL; |
| 97 |
< |
struct ConfItem *conf = NULL; |
| 96 |
> |
struct MaskItem *conf = NULL; |
| 97 |
|
struct addrinfo hints, *res; |
| 98 |
|
|
| 99 |
|
assert(source_p == client_p); |
| 105 |
|
return; |
| 106 |
|
} |
| 107 |
|
|
| 108 |
< |
aconf = find_address_conf(source_p->host, |
| 109 |
< |
IsGotId(source_p) ? source_p->username : "webirc", |
| 110 |
< |
&source_p->localClient->ip, |
| 111 |
< |
source_p->localClient->aftype, parv[1]); |
| 112 |
< |
if (aconf == NULL || !IsConfClient(aconf)) |
| 108 |
> |
conf = find_address_conf(source_p->host, |
| 109 |
> |
IsGotId(source_p) ? source_p->username : "webirc", |
| 110 |
> |
&source_p->localClient->ip, |
| 111 |
> |
source_p->localClient->aftype, parv[1]); |
| 112 |
> |
if (conf == NULL || !IsConfClient(conf)) |
| 113 |
|
return; |
| 114 |
|
|
| 115 |
< |
conf = unmap_conf_item(aconf); |
| 117 |
< |
|
| 118 |
< |
if (!IsConfDoSpoofIp(aconf) || irccmp(conf->name, "webirc.")) |
| 115 |
> |
if (!IsConfDoSpoofIp(conf) || irccmp(conf->name, "webirc.")) |
| 116 |
|
{ |
| 117 |
|
sendto_one(source_p, ":%s NOTICE %s :Not a CGI:IRC auth block", me.name, |
| 118 |
|
source_p->name[0] ? source_p->name : "*"); |
| 119 |
|
return; |
| 120 |
|
} |
| 121 |
|
|
| 122 |
< |
if (EmptyString(aconf->passwd)) |
| 122 |
> |
if (EmptyString(conf->passwd)) |
| 123 |
|
{ |
| 124 |
|
sendto_one(source_p, ":%s NOTICE %s :CGI:IRC auth blocks must have a password", |
| 125 |
|
me.name, source_p->name[0] ? source_p->name : "*"); |
| 126 |
|
return; |
| 127 |
|
} |
| 128 |
|
|
| 129 |
< |
if (!match_conf_password(parv[1], aconf)) |
| 129 |
> |
if (!match_conf_password(parv[1], conf)) |
| 130 |
|
{ |
| 131 |
|
sendto_one(source_p, ":%s NOTICE %s :CGI:IRC password incorrect", |
| 132 |
|
me.name, source_p->name[0] ? source_p->name : "*"); |
| 163 |
|
strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host)); |
| 164 |
|
|
| 165 |
|
/* Check dlines now, k/glines will be checked on registration */ |
| 166 |
< |
if ((aconf = find_dline_conf(&client_p->localClient->ip, |
| 167 |
< |
client_p->localClient->aftype))) |
| 166 |
> |
if ((conf = find_dline_conf(&client_p->localClient->ip, |
| 167 |
> |
client_p->localClient->aftype))) |
| 168 |
|
{ |
| 169 |
< |
if (!(aconf->status & CONF_EXEMPTDLINE)) |
| 169 |
> |
if (!(conf->status & CONF_EXEMPTDLINE)) |
| 170 |
|
{ |
| 171 |
|
exit_client(client_p, &me, "D-lined"); |
| 172 |
|
return; |