| 80 |
|
{ |
| 81 |
|
dlink_node *ptr = NULL, *dptr = NULL; |
| 82 |
|
struct MaskItem *conf = NULL; |
| 83 |
– |
const struct ClassItem *class = NULL; |
| 83 |
|
const struct shared_flags *shared = NULL; |
| 84 |
|
char buf[12]; |
| 85 |
|
char *p = NULL; |
| 159 |
|
} |
| 160 |
|
break; |
| 161 |
|
|
| 163 |
– |
case CONF_CLASS: |
| 164 |
– |
DLINK_FOREACH(ptr, class_get_list()->head) |
| 165 |
– |
{ |
| 166 |
– |
class = ptr->data; |
| 167 |
– |
sendto_one(source_p, form_str(RPL_STATSYLINE), |
| 168 |
– |
me.name, source_p->name, 'Y', |
| 169 |
– |
class->name, class->ping_freq, |
| 170 |
– |
class->con_freq, |
| 171 |
– |
class->max_total, class->max_sendq, |
| 172 |
– |
class->max_recvq, |
| 173 |
– |
class->ref_count, |
| 174 |
– |
class->number_per_cidr, class->cidr_bitlen_ipv4, |
| 175 |
– |
class->number_per_cidr, class->cidr_bitlen_ipv6, |
| 176 |
– |
class->active ? "active" : "disabled"); |
| 177 |
– |
} |
| 178 |
– |
break; |
| 179 |
– |
|
| 162 |
|
case CONF_SERVICE: |
| 163 |
|
DLINK_FOREACH(ptr, service_items.head) |
| 164 |
|
{ |
| 201 |
|
} |
| 202 |
|
break; |
| 203 |
|
|
| 222 |
– |
case CONF_HUB: |
| 223 |
– |
DLINK_FOREACH(ptr, server_items.head) |
| 224 |
– |
{ |
| 225 |
– |
conf = ptr->data; |
| 226 |
– |
|
| 227 |
– |
DLINK_FOREACH(dptr, conf->hub_list.head) |
| 228 |
– |
sendto_one(source_p, form_str(RPL_STATSHLINE), me.name, |
| 229 |
– |
source_p->name, 'H', dptr->data, conf->name, 0, "*"); |
| 230 |
– |
} |
| 231 |
– |
|
| 232 |
– |
DLINK_FOREACH(ptr, server_items.head) |
| 233 |
– |
{ |
| 234 |
– |
conf = ptr->data; |
| 235 |
– |
|
| 236 |
– |
DLINK_FOREACH(dptr, conf->leaf_list.head) |
| 237 |
– |
sendto_one(source_p, form_str(RPL_STATSLLINE), me.name, |
| 238 |
– |
source_p->name, 'L', dptr->data, conf->name, 0, "*"); |
| 239 |
– |
} |
| 240 |
– |
|
| 241 |
– |
break; |
| 242 |
– |
|
| 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 |
|
/* |
| 1284 |
|
static void |
| 1285 |
|
stats_class(struct Client *source_p, int parc, char *parv[]) |
| 1286 |
|
{ |
| 1287 |
< |
report_confitem_types(source_p, CONF_CLASS); |
| 1287 |
> |
const dlink_node *ptr = NULL; |
| 1288 |
> |
|
| 1289 |
> |
DLINK_FOREACH(ptr, class_get_list()->head) |
| 1290 |
> |
{ |
| 1291 |
> |
const struct ClassItem *class = ptr->data; |
| 1292 |
> |
|
| 1293 |
> |
sendto_one(source_p, form_str(RPL_STATSYLINE), |
| 1294 |
> |
me.name, source_p->name, 'Y', |
| 1295 |
> |
class->name, class->ping_freq, |
| 1296 |
> |
class->con_freq, |
| 1297 |
> |
class->max_total, class->max_sendq, |
| 1298 |
> |
class->max_recvq, |
| 1299 |
> |
class->ref_count, |
| 1300 |
> |
class->number_per_cidr, class->cidr_bitlen_ipv4, |
| 1301 |
> |
class->number_per_cidr, class->cidr_bitlen_ipv6, |
| 1302 |
> |
class->active ? "active" : "disabled"); |
| 1303 |
> |
} |
| 1304 |
|
} |
| 1305 |
|
|
| 1306 |
|
static void |