X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/969a1ae66a32d04821b9f9657b8c70192225e3bf..b96db1e3fe1defa57976af1a423641bbe477dce2:/src/hostmask.c diff --git a/src/hostmask.c b/src/hostmask.c index a0a193d..1058df5 100644 --- a/src/hostmask.c +++ b/src/hostmask.c @@ -62,7 +62,11 @@ parse_netmask(const char *text, struct sockaddr *naddr, int *nb) addr = (struct rb_sockaddr_storage *)&xaddr; else addr = (struct rb_sockaddr_storage *)naddr; - + + if(strpbrk(ip, "*?") != NULL) + { + return HM_HOST; + } #ifdef RB_IPV6 if(strchr(ip, ':')) { @@ -386,7 +390,7 @@ find_address_conf(const char *host, const char *sockhost, const char *user, /* if theres a spoof, check it against klines.. */ if(IsConfDoSpoofIp(iconf)) { - char *p = strchr(iconf->name, '@'); + char *p = strchr(iconf->info.name, '@'); /* note, we dont need to pass sockhost here, as its * guaranteed to not match by whats above.. --anfl @@ -394,11 +398,11 @@ find_address_conf(const char *host, const char *sockhost, const char *user, if(p) { *p = '\0'; - kconf = find_conf_by_address(p+1, NULL, NULL, ip, CONF_KILL, aftype, iconf->name, NULL); + kconf = find_conf_by_address(p+1, NULL, NULL, ip, CONF_KILL, aftype, iconf->info.name, NULL); *p = '@'; } else - kconf = find_conf_by_address(iconf->name, NULL, NULL, ip, CONF_KILL, aftype, vuser, NULL); + kconf = find_conf_by_address(iconf->info.name, NULL, NULL, ip, CONF_KILL, aftype, vuser, NULL); if(kconf) return kconf; @@ -446,7 +450,6 @@ find_exact_conf_by_address(const char *address, int type, const char *username) if(address == NULL) address = "/NOMATCH!/"; - arec = rb_malloc(sizeof(struct AddressRec)); masktype = parse_netmask(address, (struct sockaddr *)&addr, &bits); #ifdef RB_IPV6 if(masktype == HM_IPV6) @@ -704,7 +707,7 @@ show_iline_prefix(struct Client *sptr, struct ConfItem *aconf, char *name) void report_auth(struct Client *client_p) { - char *name, *host, *pass = "*", *user, *classname; + char *name, *host, *pass, *user, *classname; struct AddressRec *arec; struct ConfItem *aconf; int i, port;