61 |
|
static int |
62 |
|
try_parse_v6_netmask(const char *text, struct irc_ssaddr *addr, int *b) |
63 |
|
{ |
64 |
– |
const char *p; |
64 |
|
char c; |
65 |
|
int d[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; |
66 |
|
int dp = 0; |
71 |
|
short dc[8]; |
72 |
|
struct sockaddr_in6 *v6 = (struct sockaddr_in6 *)addr; |
73 |
|
|
74 |
< |
for (p = text; (c = *p); ++p) |
74 |
> |
for (const char *p = text; (c = *p); ++p) |
75 |
|
{ |
76 |
|
if (IsXDigit(c)) |
77 |
|
{ |
173 |
|
static int |
174 |
|
try_parse_v4_netmask(const char *text, struct irc_ssaddr *addr, int *b) |
175 |
|
{ |
177 |
– |
const char *p; |
176 |
|
const char *digits[4]; |
177 |
|
unsigned char addb[4]; |
178 |
|
int n = 0, bits = 0; |
181 |
|
|
182 |
|
digits[n++] = text; |
183 |
|
|
184 |
< |
for (p = text; (c = *p); ++p) |
184 |
> |
for (const char *p = text; (c = *p); ++p) |
185 |
|
{ |
186 |
|
if (c >= '0' && c <= '9') /* empty */ |
187 |
|
; |
414 |
|
static uint32_t |
415 |
|
hash_text(const char *start) |
416 |
|
{ |
419 |
– |
const char *p = start; |
417 |
|
uint32_t h = 0; |
418 |
|
|
419 |
< |
for (; *p; ++p) |
419 |
> |
for (const char *p = start; *p; ++p) |
420 |
|
h = (h << 4) - (h + ToLower(*p)); |
421 |
|
|
422 |
|
return h & (ATABLE_SIZE - 1); |
639 |
|
|
640 |
|
assert(type && !EmptyString(hostname)); |
641 |
|
|
642 |
< |
arec = MyMalloc(sizeof(struct AddressRec)); |
642 |
> |
arec = MyCalloc(sizeof(struct AddressRec)); |
643 |
|
arec->masktype = parse_netmask(hostname, &arec->Mask.ipa.addr, &bits); |
644 |
|
arec->Mask.ipa.bits = bits; |
645 |
|
arec->username = username; |
681 |
|
{ |
682 |
|
int bits = 0; |
683 |
|
uint32_t hv = 0; |
684 |
< |
dlink_node *ptr = NULL, *ptr_next = NULL; |
684 |
> |
dlink_node *ptr = NULL; |
685 |
|
struct irc_ssaddr addr; |
686 |
|
|
687 |
|
switch (parse_netmask(address, &addr, &bits)) |
703 |
|
break; |
704 |
|
} |
705 |
|
|
706 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, atable[hv].head) |
706 |
> |
DLINK_FOREACH(ptr, atable[hv].head) |
707 |
|
{ |
708 |
|
struct AddressRec *arec = ptr->data; |
709 |
|
|