| 201 |
|
} |
| 202 |
|
break; |
| 203 |
|
|
| 204 |
– |
case CONF_HUB: |
| 205 |
– |
DLINK_FOREACH(ptr, server_items.head) |
| 206 |
– |
{ |
| 207 |
– |
conf = ptr->data; |
| 208 |
– |
|
| 209 |
– |
DLINK_FOREACH(dptr, conf->hub_list.head) |
| 210 |
– |
sendto_one(source_p, form_str(RPL_STATSHLINE), me.name, |
| 211 |
– |
source_p->name, 'H', dptr->data, conf->name, 0, "*"); |
| 212 |
– |
} |
| 213 |
– |
|
| 214 |
– |
DLINK_FOREACH(ptr, server_items.head) |
| 215 |
– |
{ |
| 216 |
– |
conf = ptr->data; |
| 217 |
– |
|
| 218 |
– |
DLINK_FOREACH(dptr, conf->leaf_list.head) |
| 219 |
– |
sendto_one(source_p, form_str(RPL_STATSLLINE), me.name, |
| 220 |
– |
source_p->name, 'L', dptr->data, conf->name, 0, "*"); |
| 221 |
– |
} |
| 222 |
– |
|
| 223 |
– |
break; |
| 224 |
– |
|
| 204 |
|
default: |
| 205 |
|
break; |
| 206 |
|
} |
| 812 |
|
static void |
| 813 |
|
stats_hubleaf(struct Client *source_p, int parc, char *parv[]) |
| 814 |
|
{ |
| 815 |
< |
report_confitem_types(source_p, CONF_HUB); |
| 815 |
> |
const dlink_node *ptr = NULL, *dptr = NULL; |
| 816 |
> |
|
| 817 |
> |
DLINK_FOREACH(ptr, server_items.head) |
| 818 |
> |
{ |
| 819 |
> |
const struct MaskItem *conf = ptr->data; |
| 820 |
> |
|
| 821 |
> |
DLINK_FOREACH(dptr, conf->hub_list.head) |
| 822 |
> |
sendto_one(source_p, form_str(RPL_STATSHLINE), me.name, |
| 823 |
> |
source_p->name, 'H', dptr->data, conf->name, 0, "*"); |
| 824 |
> |
} |
| 825 |
> |
|
| 826 |
> |
DLINK_FOREACH(ptr, server_items.head) |
| 827 |
> |
{ |
| 828 |
> |
const struct MaskItem *conf = ptr->data; |
| 829 |
> |
|
| 830 |
> |
DLINK_FOREACH(dptr, conf->leaf_list.head) |
| 831 |
> |
sendto_one(source_p, form_str(RPL_STATSLLINE), me.name, |
| 832 |
> |
source_p->name, 'L', dptr->data, conf->name, 0, "*"); |
| 833 |
> |
} |
| 834 |
|
} |
| 835 |
|
|
| 836 |
|
/* |