| 143 |
|
void |
| 144 |
|
conf_free(struct MaskItem *conf) |
| 145 |
|
{ |
| 146 |
< |
dlink_node *ptr = NULL, *ptr_next = NULL; |
| 146 |
> |
dlink_node *node = NULL, *node_next = NULL; |
| 147 |
|
dlink_list *list = NULL; |
| 148 |
|
|
| 149 |
|
if ((list = map_to_list(conf->type))) |
| 172 |
|
if (conf->rsa_public_key) |
| 173 |
|
RSA_free(conf->rsa_public_key); |
| 174 |
|
#endif |
| 175 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, conf->hub_list.head) |
| 175 |
> |
DLINK_FOREACH_SAFE(node, node_next, conf->hub_list.head) |
| 176 |
|
{ |
| 177 |
< |
MyFree(ptr->data); |
| 178 |
< |
dlinkDelete(ptr, &conf->hub_list); |
| 179 |
< |
free_dlink_node(ptr); |
| 177 |
> |
MyFree(node->data); |
| 178 |
> |
dlinkDelete(node, &conf->hub_list); |
| 179 |
> |
free_dlink_node(node); |
| 180 |
|
} |
| 181 |
|
|
| 182 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, conf->leaf_list.head) |
| 182 |
> |
DLINK_FOREACH_SAFE(node, node_next, conf->leaf_list.head) |
| 183 |
|
{ |
| 184 |
< |
MyFree(ptr->data); |
| 185 |
< |
dlinkDelete(ptr, &conf->leaf_list); |
| 186 |
< |
free_dlink_node(ptr); |
| 184 |
> |
MyFree(node->data); |
| 185 |
> |
dlinkDelete(node, &conf->leaf_list); |
| 186 |
> |
free_dlink_node(node); |
| 187 |
|
} |
| 188 |
|
|
| 189 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, conf->exempt_list.head) |
| 189 |
> |
DLINK_FOREACH_SAFE(node, node_next, conf->exempt_list.head) |
| 190 |
|
{ |
| 191 |
< |
struct exempt *exptr = ptr->data; |
| 191 |
> |
struct exempt *exptr = node->data; |
| 192 |
|
|
| 193 |
< |
dlinkDelete(ptr, &conf->exempt_list); |
| 193 |
> |
dlinkDelete(node, &conf->exempt_list); |
| 194 |
|
MyFree(exptr->name); |
| 195 |
|
MyFree(exptr->user); |
| 196 |
|
MyFree(exptr->host); |
| 404 |
|
void |
| 405 |
|
detach_conf(struct Client *client_p, enum maskitem_type type) |
| 406 |
|
{ |
| 407 |
< |
dlink_node *ptr = NULL, *ptr_next = NULL; |
| 407 |
> |
dlink_node *node = NULL, *node_next = NULL; |
| 408 |
|
|
| 409 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, client_p->connection->confs.head) |
| 409 |
> |
DLINK_FOREACH_SAFE(node, node_next, client_p->connection->confs.head) |
| 410 |
|
{ |
| 411 |
< |
struct MaskItem *conf = ptr->data; |
| 411 |
> |
struct MaskItem *conf = node->data; |
| 412 |
|
|
| 413 |
|
assert(conf->type & (CONF_CLIENT | CONF_OPER | CONF_SERVER)); |
| 414 |
|
assert(conf->ref_count > 0); |
| 417 |
|
if (!(conf->type & type)) |
| 418 |
|
continue; |
| 419 |
|
|
| 420 |
< |
dlinkDelete(ptr, &client_p->connection->confs); |
| 421 |
< |
free_dlink_node(ptr); |
| 420 |
> |
dlinkDelete(node, &client_p->connection->confs); |
| 421 |
> |
free_dlink_node(node); |
| 422 |
|
|
| 423 |
|
if (conf->type == CONF_CLIENT) |
| 424 |
|
remove_from_cidr_check(&client_p->connection->ip, conf->class); |
| 475 |
|
attach_connect_block(struct Client *client_p, const char *name, |
| 476 |
|
const char *host) |
| 477 |
|
{ |
| 478 |
< |
dlink_node *ptr; |
| 479 |
< |
struct MaskItem *conf = NULL; |
| 478 |
> |
dlink_node *node = NULL; |
| 479 |
|
|
| 480 |
|
assert(client_p != NULL); |
| 481 |
|
assert(host != NULL); |
| 483 |
|
if (client_p == NULL || host == NULL) |
| 484 |
|
return 0; |
| 485 |
|
|
| 486 |
< |
DLINK_FOREACH(ptr, server_items.head) |
| 486 |
> |
DLINK_FOREACH(node, server_items.head) |
| 487 |
|
{ |
| 488 |
< |
conf = ptr->data; |
| 488 |
> |
struct MaskItem *conf = node->data; |
| 489 |
|
|
| 490 |
|
if (match(conf->name, name) || match(conf->host, host)) |
| 491 |
|
continue; |
| 509 |
|
struct MaskItem * |
| 510 |
|
find_conf_name(dlink_list *list, const char *name, enum maskitem_type type) |
| 511 |
|
{ |
| 512 |
< |
dlink_node *ptr; |
| 514 |
< |
struct MaskItem* conf; |
| 512 |
> |
dlink_node *node = NULL; |
| 513 |
|
|
| 514 |
< |
DLINK_FOREACH(ptr, list->head) |
| 514 |
> |
DLINK_FOREACH(node, list->head) |
| 515 |
|
{ |
| 516 |
< |
conf = ptr->data; |
| 516 |
> |
struct MaskItem *conf = node->data; |
| 517 |
|
|
| 518 |
|
if (conf->type == type) |
| 519 |
|
{ |
| 578 |
|
find_matching_name_conf(enum maskitem_type type, const char *name, const char *user, |
| 579 |
|
const char *host, unsigned int flags) |
| 580 |
|
{ |
| 581 |
< |
dlink_node *ptr=NULL; |
| 582 |
< |
struct MaskItem *conf=NULL; |
| 583 |
< |
dlink_list *list_p = map_to_list(type); |
| 581 |
> |
dlink_node *node = NULL; |
| 582 |
> |
dlink_list *list = map_to_list(type); |
| 583 |
> |
struct MaskItem *conf = NULL; |
| 584 |
|
|
| 585 |
|
switch (type) |
| 586 |
|
{ |
| 587 |
|
case CONF_SERVICE: |
| 588 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 588 |
> |
DLINK_FOREACH(node, list->head) |
| 589 |
|
{ |
| 590 |
< |
conf = ptr->data; |
| 590 |
> |
conf = node->data; |
| 591 |
|
|
| 592 |
|
if (EmptyString(conf->name)) |
| 593 |
|
continue; |
| 600 |
|
case CONF_ULINE: |
| 601 |
|
case CONF_NRESV: |
| 602 |
|
case CONF_CRESV: |
| 603 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 603 |
> |
DLINK_FOREACH(node, list->head) |
| 604 |
|
{ |
| 605 |
< |
conf = ptr->data; |
| 605 |
> |
conf = node->data; |
| 606 |
|
|
| 607 |
|
if (EmptyString(conf->name)) |
| 608 |
|
continue; |
| 621 |
|
break; |
| 622 |
|
|
| 623 |
|
case CONF_SERVER: |
| 624 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 624 |
> |
DLINK_FOREACH(node, list->head) |
| 625 |
|
{ |
| 626 |
< |
conf = ptr->data; |
| 626 |
> |
conf = node->data; |
| 627 |
|
|
| 628 |
|
if ((name != NULL) && !match(name, conf->name)) |
| 629 |
|
return conf; |
| 651 |
|
find_exact_name_conf(enum maskitem_type type, const struct Client *who, const char *name, |
| 652 |
|
const char *user, const char *host) |
| 653 |
|
{ |
| 654 |
< |
dlink_node *ptr = NULL; |
| 655 |
< |
struct MaskItem *conf; |
| 656 |
< |
dlink_list *list_p = map_to_list(type); |
| 654 |
> |
dlink_node *node = NULL; |
| 655 |
> |
dlink_list *list = map_to_list(type); |
| 656 |
> |
struct MaskItem *conf = NULL; |
| 657 |
|
|
| 658 |
|
switch(type) |
| 659 |
|
{ |
| 662 |
|
case CONF_NRESV: |
| 663 |
|
case CONF_CRESV: |
| 664 |
|
|
| 665 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 665 |
> |
DLINK_FOREACH(node, list->head) |
| 666 |
|
{ |
| 667 |
< |
conf = ptr->data; |
| 667 |
> |
conf = node->data; |
| 668 |
|
|
| 669 |
|
if (EmptyString(conf->name)) |
| 670 |
|
continue; |
| 682 |
|
break; |
| 683 |
|
|
| 684 |
|
case CONF_OPER: |
| 685 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 685 |
> |
DLINK_FOREACH(node, list->head) |
| 686 |
|
{ |
| 687 |
< |
conf = ptr->data; |
| 687 |
> |
conf = node->data; |
| 688 |
|
|
| 689 |
|
if (EmptyString(conf->name)) |
| 690 |
|
continue; |
| 726 |
|
break; |
| 727 |
|
|
| 728 |
|
case CONF_SERVER: |
| 729 |
< |
DLINK_FOREACH(ptr, list_p->head) |
| 729 |
> |
DLINK_FOREACH(node, list->head) |
| 730 |
|
{ |
| 731 |
< |
conf = ptr->data; |
| 731 |
> |
conf = node->data; |
| 732 |
|
|
| 733 |
|
if (EmptyString(conf->name)) |
| 734 |
|
continue; |
| 1049 |
|
* side effects - expire tklines |
| 1050 |
|
*/ |
| 1051 |
|
static void |
| 1052 |
< |
expire_tklines(dlink_list *tklist) |
| 1052 |
> |
expire_tklines(dlink_list *list) |
| 1053 |
|
{ |
| 1054 |
< |
dlink_node *ptr = NULL, *ptr_next = NULL; |
| 1057 |
< |
struct MaskItem *conf = NULL; |
| 1054 |
> |
dlink_node *node = NULL, *node_next = NULL; |
| 1055 |
|
|
| 1056 |
< |
DLINK_FOREACH_SAFE(ptr, ptr_next, tklist->head) |
| 1056 |
> |
DLINK_FOREACH_SAFE(node, node_next, list->head) |
| 1057 |
|
{ |
| 1058 |
< |
conf = ptr->data; |
| 1058 |
> |
struct MaskItem *conf = node->data; |
| 1059 |
|
|
| 1060 |
|
if (!conf->until || conf->until > CurrentTime) |
| 1061 |
|
continue; |
| 1247 |
|
static void |
| 1248 |
|
clear_out_old_conf(void) |
| 1249 |
|
{ |
| 1250 |
< |
dlink_node *ptr = NULL, *next_ptr = NULL; |
| 1250 |
> |
dlink_node *node = NULL, *node_next = NULL; |
| 1251 |
|
dlink_list *free_items [] = { |
| 1252 |
|
&server_items, &oconf_items, |
| 1253 |
|
&uconf_items, &xconf_items, |
| 1262 |
|
|
| 1263 |
|
for (; *iterator != NULL; iterator++) |
| 1264 |
|
{ |
| 1265 |
< |
DLINK_FOREACH_SAFE(ptr, next_ptr, (*iterator)->head) |
| 1265 |
> |
DLINK_FOREACH_SAFE(node, node_next, (*iterator)->head) |
| 1266 |
|
{ |
| 1267 |
< |
struct MaskItem *conf = ptr->data; |
| 1267 |
> |
struct MaskItem *conf = node->data; |
| 1268 |
|
|
| 1269 |
|
conf->active = 0; |
| 1270 |
|
dlinkDelete(&conf->node, *iterator); |
| 1833 |
|
{ |
| 1834 |
|
va_list args; |
| 1835 |
|
char buffer[IRCD_BUFSIZE] = ""; |
| 1836 |
< |
const dlink_node *ptr = NULL; |
| 1836 |
> |
const dlink_node *node = NULL; |
| 1837 |
|
|
| 1838 |
|
va_start(args, pattern); |
| 1839 |
|
vsnprintf(buffer, sizeof(buffer), pattern, args); |
| 1840 |
|
va_end(args); |
| 1841 |
|
|
| 1842 |
< |
DLINK_FOREACH(ptr, cluster_items.head) |
| 1842 |
> |
DLINK_FOREACH(node, cluster_items.head) |
| 1843 |
|
{ |
| 1844 |
< |
const struct MaskItem *conf = ptr->data; |
| 1844 |
> |
const struct MaskItem *conf = node->data; |
| 1845 |
|
|
| 1846 |
|
if (conf->flags & cluster_type) |
| 1847 |
|
sendto_match_servs(source_p, conf->name, CAP_CLUSTER|capab, |