271 |
|
if (rup == 0) |
272 |
|
rup = 1; |
273 |
|
|
274 |
< |
sendto_one(source_p, |
275 |
< |
":%s %d %s R :CPU Secs %d:%02d User %d:%02d System %d:%02d", |
276 |
< |
me.name, RPL_STATSDEBUG, source_p->name, (int)(secs/60), (int)(secs%60), |
277 |
< |
(int)(rus.ru_utime.tv_sec/60), (int)(rus.ru_utime.tv_sec%60), |
278 |
< |
(int)(rus.ru_stime.tv_sec/60), (int)(rus.ru_stime.tv_sec%60)); |
279 |
< |
sendto_one(source_p, ":%s %d %s R :RSS %ld ShMem %ld Data %ld Stack %ld", |
280 |
< |
me.name, RPL_STATSDEBUG, source_p->name, rus.ru_maxrss, |
281 |
< |
(rus.ru_ixrss / rup), (rus.ru_idrss / rup), |
282 |
< |
(rus.ru_isrss / rup)); |
283 |
< |
sendto_one(source_p, ":%s %d %s R :Swaps %d Reclaims %d Faults %d", |
284 |
< |
me.name, RPL_STATSDEBUG, source_p->name, (int)rus.ru_nswap, |
285 |
< |
(int)rus.ru_minflt, (int)rus.ru_majflt); |
286 |
< |
sendto_one(source_p, ":%s %d %s R :Block in %d out %d", |
287 |
< |
me.name, RPL_STATSDEBUG, source_p->name, (int)rus.ru_inblock, |
288 |
< |
(int)rus.ru_oublock); |
289 |
< |
sendto_one(source_p, ":%s %d %s R :Msg Rcv %d Send %d", |
290 |
< |
me.name, RPL_STATSDEBUG, source_p->name, (int)rus.ru_msgrcv, |
291 |
< |
(int)rus.ru_msgsnd); |
292 |
< |
sendto_one(source_p, ":%s %d %s R :Signals %d Context Vol. %d Invol %d", |
293 |
< |
me.name, RPL_STATSDEBUG, source_p->name, (int)rus.ru_nsignals, |
294 |
< |
(int)rus.ru_nvcsw, (int)rus.ru_nivcsw); |
274 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
275 |
> |
"R :CPU Secs %d:%02d User %d:%02d System %d:%02d", |
276 |
> |
(int)(secs/60), (int)(secs%60), |
277 |
> |
(int)(rus.ru_utime.tv_sec/60), (int)(rus.ru_utime.tv_sec%60), |
278 |
> |
(int)(rus.ru_stime.tv_sec/60), (int)(rus.ru_stime.tv_sec%60)); |
279 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
280 |
> |
"R :RSS %ld ShMem %ld Data %ld Stack %ld", |
281 |
> |
rus.ru_maxrss, |
282 |
> |
(rus.ru_ixrss / rup), (rus.ru_idrss / rup), |
283 |
> |
(rus.ru_isrss / rup)); |
284 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
285 |
> |
"R :Swaps %d Reclaims %d Faults %d", |
286 |
> |
(int)rus.ru_nswap, |
287 |
> |
(int)rus.ru_minflt, (int)rus.ru_majflt); |
288 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
289 |
> |
"R :Block in %d out %d", |
290 |
> |
(int)rus.ru_inblock, |
291 |
> |
(int)rus.ru_oublock); |
292 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
293 |
> |
"R :Msg Rcv %d Send %d", |
294 |
> |
(int)rus.ru_msgrcv, |
295 |
> |
(int)rus.ru_msgsnd); |
296 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
297 |
> |
"R :Signals %d Context Vol. %d Invol %d", |
298 |
> |
(int)rus.ru_nsignals, |
299 |
> |
(int)rus.ru_nvcsw, (int)rus.ru_nivcsw); |
300 |
|
} |
301 |
|
|
302 |
|
static void |
454 |
|
whowas_count_memory(&wwu, &wwm); |
455 |
|
watch_count_memory(&watch_list_headers, &watch_list_memory); |
456 |
|
|
457 |
< |
sendto_one(source_p, ":%s %d %s z :WATCH headers %u(%llu) entries %d(%u)", |
458 |
< |
me.name, RPL_STATSDEBUG, source_p->name, watch_list_headers, |
459 |
< |
watch_list_memory, watch_list_entries, |
460 |
< |
watch_list_entries * sizeof(dlink_node) * 2); |
461 |
< |
|
462 |
< |
sendto_one(source_p, ":%s %d %s z :Clients %u(%u)", |
463 |
< |
me.name, RPL_STATSDEBUG, source_p->name, users_counted, |
464 |
< |
(users_counted * sizeof(struct Client))); |
465 |
< |
|
466 |
< |
sendto_one(source_p, ":%s %d %s z :User aways %u", |
467 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
468 |
< |
aways_counted); |
469 |
< |
|
470 |
< |
sendto_one(source_p, ":%s %d %s z :Attached confs %u(%llu)", |
471 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
472 |
< |
local_client_conf_count, |
473 |
< |
(unsigned long long)(local_client_conf_count * sizeof(dlink_node))); |
474 |
< |
|
475 |
< |
sendto_one(source_p, ":%s %d %s z :Resv channels %u(%lu) nicks %u(%lu)", |
476 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
477 |
< |
dlink_list_length(&cresv_items), |
478 |
< |
dlink_list_length(&cresv_items) * sizeof(struct MaskItem), |
479 |
< |
dlink_list_length(&nresv_items), |
480 |
< |
dlink_list_length(&nresv_items) * sizeof(struct MaskItem)); |
481 |
< |
|
482 |
< |
sendto_one(source_p, ":%s %d %s z :Classes %u(%llu)", |
483 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
484 |
< |
class_count, (unsigned long long)(class_count * sizeof(struct ClassItem))); |
485 |
< |
|
486 |
< |
sendto_one(source_p, ":%s %d %s z :Channels %u(%llu) Topics %u(%u)", |
487 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
488 |
< |
dlink_list_length(&global_channel_list), |
489 |
< |
channel_memory, topic_count, topic_count * |
490 |
< |
(TOPICLEN + 1 + USERHOST_REPLYLEN)); |
491 |
< |
|
492 |
< |
sendto_one(source_p, ":%s %d %s z :Bans %u(%llu)", |
493 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
494 |
< |
channel_bans, channel_ban_memory); |
495 |
< |
|
496 |
< |
sendto_one(source_p, ":%s %d %s z :Exceptions %u(%llu)", |
497 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
498 |
< |
channel_except, channel_except_memory); |
499 |
< |
|
500 |
< |
sendto_one(source_p, ":%s %d %s z :Invex %u(%llu)", |
501 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
502 |
< |
channel_invex, channel_invex_memory); |
503 |
< |
|
504 |
< |
sendto_one(source_p, ":%s %d %s z :Channel members %u(%llu) invites %u(%llu)", |
505 |
< |
me.name, RPL_STATSDEBUG, source_p->name, channel_members, |
506 |
< |
(unsigned long long)(channel_members * sizeof(struct Membership)), |
507 |
< |
channel_invites, (unsigned long long)channel_invites * |
508 |
< |
sizeof(dlink_node) * 2); |
457 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
458 |
> |
"z :WATCH headers %u(%llu) entries %d(%u)", |
459 |
> |
watch_list_headers, |
460 |
> |
watch_list_memory, watch_list_entries, |
461 |
> |
watch_list_entries * sizeof(dlink_node) * 2); |
462 |
> |
|
463 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
464 |
> |
"z :Clients %u(%u)", |
465 |
> |
users_counted, |
466 |
> |
(users_counted * sizeof(struct Client))); |
467 |
> |
|
468 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
469 |
> |
"z :User aways %u", aways_counted); |
470 |
> |
|
471 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
472 |
> |
"z :Attached confs %u(%llu)", |
473 |
> |
local_client_conf_count, |
474 |
> |
(unsigned long long)(local_client_conf_count * sizeof(dlink_node))); |
475 |
> |
|
476 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
477 |
> |
"z :Resv channels %u(%lu) nicks %u(%lu)", |
478 |
> |
dlink_list_length(&cresv_items), |
479 |
> |
dlink_list_length(&cresv_items) * sizeof(struct MaskItem), |
480 |
> |
dlink_list_length(&nresv_items), |
481 |
> |
dlink_list_length(&nresv_items) * sizeof(struct MaskItem)); |
482 |
> |
|
483 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
484 |
> |
"z :Classes %u(%llu)", |
485 |
> |
class_count, (unsigned long long)(class_count * sizeof(struct ClassItem))); |
486 |
> |
|
487 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
488 |
> |
"z :Channels %u(%llu) Topics %u(%u)", |
489 |
> |
dlink_list_length(&global_channel_list), |
490 |
> |
channel_memory, topic_count, topic_count * |
491 |
> |
(TOPICLEN + 1 + USERHOST_REPLYLEN)); |
492 |
> |
|
493 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
494 |
> |
"z :Bans %u(%llu)", |
495 |
> |
channel_bans, channel_ban_memory); |
496 |
> |
|
497 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
498 |
> |
"z :Exceptions %u(%llu)", |
499 |
> |
channel_except, channel_except_memory); |
500 |
> |
|
501 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
502 |
> |
"z :Invex %u(%llu)", |
503 |
> |
channel_invex, channel_invex_memory); |
504 |
> |
|
505 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
506 |
> |
"z :Channel members %u(%llu) invites %u(%llu)", |
507 |
> |
channel_members, |
508 |
> |
(unsigned long long)(channel_members * sizeof(struct Membership)), |
509 |
> |
channel_invites, (unsigned long long)channel_invites * sizeof(dlink_node) * 2); |
510 |
|
|
511 |
|
total_channel_memory = channel_memory + channel_ban_memory + |
512 |
|
channel_members * sizeof(struct Membership) + |
513 |
|
(channel_invites * sizeof(dlink_node)*2); |
514 |
|
|
515 |
< |
sendto_one(source_p, ":%s %d %s z :Safelist %u(%llu)", |
516 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
517 |
< |
safelist_count, safelist_memory); |
518 |
< |
|
519 |
< |
sendto_one(source_p, ":%s %d %s z :Whowas users %u(%llu)", |
520 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
521 |
< |
wwu, (unsigned long long)(wwu * sizeof(struct Client))); |
522 |
< |
|
523 |
< |
sendto_one(source_p, ":%s %d %s z :Whowas array %u(%llu)", |
524 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
525 |
< |
NICKNAMEHISTORYLENGTH, wwm); |
515 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
516 |
> |
"z :Safelist %u(%llu)", |
517 |
> |
safelist_count, safelist_memory); |
518 |
> |
|
519 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
520 |
> |
"z :Whowas users %u(%llu)", |
521 |
> |
wwu, (unsigned long long)(wwu * sizeof(struct Client))); |
522 |
> |
|
523 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
524 |
> |
"z :Whowas array %u(%llu)", |
525 |
> |
NICKNAMEHISTORYLENGTH, wwm); |
526 |
|
|
527 |
|
totww = wwu * sizeof(struct Client) + wwm; |
528 |
|
|
529 |
|
motd_memory_count(source_p); |
530 |
|
count_ip_hash(&number_ips_stored,&mem_ips_stored); |
531 |
< |
sendto_one(source_p, ":%s %d %s z :iphash %u(%llu)", |
532 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
533 |
< |
number_ips_stored, mem_ips_stored); |
531 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
532 |
> |
"z :iphash %u(%llu)", |
533 |
> |
number_ips_stored, mem_ips_stored); |
534 |
|
|
535 |
|
total_memory = totww + total_channel_memory + conf_memory + class_count * |
536 |
|
sizeof(struct ClassItem); |
537 |
< |
sendto_one(source_p, ":%s %d %s z :Total: whowas %llu channel %llu conf %llu", |
538 |
< |
me.name, RPL_STATSDEBUG, source_p->name, totww, |
539 |
< |
total_channel_memory, conf_memory); |
537 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
538 |
> |
"z :Total: whowas %llu channel %llu conf %llu", |
539 |
> |
totww, total_channel_memory, conf_memory); |
540 |
|
|
541 |
|
local_client_memory_used = local_client_count*(sizeof(struct Client) + sizeof(struct LocalUser)); |
542 |
|
total_memory += local_client_memory_used; |
543 |
< |
sendto_one(source_p, ":%s %d %s z :Local client Memory in use: %u(%llu)", |
544 |
< |
me.name, RPL_STATSDEBUG, source_p->name, local_client_count, |
545 |
< |
local_client_memory_used); |
543 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
544 |
> |
"z :Local client Memory in use: %u(%llu)", |
545 |
> |
local_client_count, local_client_memory_used); |
546 |
|
|
547 |
|
remote_client_memory_used = remote_client_count * sizeof(struct Client); |
548 |
|
total_memory += remote_client_memory_used; |
549 |
< |
sendto_one(source_p, ":%s %d %s z :Remote client Memory in use: %u(%llu)", |
550 |
< |
me.name, RPL_STATSDEBUG, source_p->name, remote_client_count, |
551 |
< |
remote_client_memory_used); |
552 |
< |
|
553 |
< |
sendto_one(source_p, |
554 |
< |
":%s %d %s z :TOTAL: %llu", |
555 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
556 |
< |
total_memory); |
549 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
550 |
> |
"z :Remote client Memory in use: %u(%llu)", |
551 |
> |
remote_client_count, remote_client_memory_used); |
552 |
> |
|
553 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
554 |
> |
"z :TOTAL: %llu", |
555 |
> |
me.name, RPL_STATSDEBUG, source_p->name, |
556 |
> |
total_memory); |
557 |
|
} |
558 |
|
|
559 |
|
static void |
1088 |
|
strlcpy(buf, "n/a", sizeof(buf)); |
1089 |
|
|
1090 |
|
if (MyClient(source_p) && HasUMode(source_p, UMODE_OPER)) |
1091 |
< |
sendto_one(source_p, ":%s %d %s p :[%c][%s] %s (%s@%s) Idle: %s", |
1092 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1093 |
< |
HasUMode(target_p, UMODE_ADMIN) ? 'A' : 'O', |
1094 |
< |
oper_privs_as_string(target_p->localClient->operflags), |
1095 |
< |
target_p->name, target_p->username, target_p->host, buf); |
1091 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1092 |
> |
"p :[%c][%s] %s (%s@%s) Idle: %s", |
1093 |
> |
HasUMode(target_p, UMODE_ADMIN) ? 'A' : 'O', |
1094 |
> |
oper_privs_as_string(target_p->localClient->operflags), |
1095 |
> |
target_p->name, target_p->username, target_p->host, buf); |
1096 |
|
else |
1097 |
< |
sendto_one(source_p, ":%s %d %s p :[%c] %s (%s@%s) Idle: %s", |
1098 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1099 |
< |
HasUMode(target_p, UMODE_ADMIN) ? 'A' : 'O', |
1100 |
< |
target_p->name, target_p->username, target_p->host, buf); |
1097 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1098 |
> |
"p :[%c] %s (%s@%s) Idle: %s", |
1099 |
> |
HasUMode(target_p, UMODE_ADMIN) ? 'A' : 'O', |
1100 |
> |
target_p->name, target_p->username, target_p->host, buf); |
1101 |
|
++opercount; |
1102 |
|
} |
1103 |
|
|
1104 |
< |
sendto_one(source_p, ":%s %d %s p :%u OPER(s)", |
1105 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), opercount); |
1104 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1105 |
> |
"p :%u OPER(s)", opercount); |
1106 |
|
} |
1107 |
|
|
1108 |
|
static void |
1165 |
|
|
1166 |
|
sp->is_ni += dlink_list_length(&unknown_list); |
1167 |
|
|
1168 |
< |
sendto_one(source_p, ":%s %d %s T :accepts %u refused %u", |
1169 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_ac, sp->is_ref); |
1170 |
< |
sendto_one(source_p, ":%s %d %s T :unknown commands %u prefixes %u", |
1171 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_unco, sp->is_unpf); |
1172 |
< |
sendto_one(source_p, ":%s %d %s T :nick collisions %u unknown closes %u", |
1173 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_kill, sp->is_ni); |
1174 |
< |
sendto_one(source_p, ":%s %d %s T :wrong direction %u empty %u", |
1175 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_wrdi, sp->is_empt); |
1176 |
< |
sendto_one(source_p, ":%s %d %s T :numerics seen %u", |
1177 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_num); |
1178 |
< |
sendto_one(source_p, ":%s %d %s T :auth successes %u fails %u", |
1179 |
< |
me.name, RPL_STATSDEBUG, source_p->name, sp->is_asuc, sp->is_abad); |
1180 |
< |
sendto_one(source_p, ":%s %d %s T :Client Server", |
1181 |
< |
me.name, RPL_STATSDEBUG, source_p->name); |
1182 |
< |
|
1183 |
< |
sendto_one(source_p, ":%s %d %s T :connected %u %u", |
1184 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
1185 |
< |
(unsigned int)sp->is_cl, |
1186 |
< |
(unsigned int)sp->is_sv); |
1187 |
< |
sendto_one(source_p, ":%s %d %s T :bytes sent %llu %llu", |
1188 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
1189 |
< |
sp->is_cbs, sp->is_sbs); |
1190 |
< |
sendto_one(source_p, ":%s %d %s T :bytes recv %llu %llu", |
1191 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
1192 |
< |
sp->is_cbr, sp->is_sbr); |
1193 |
< |
sendto_one(source_p, ":%s %d %s T :time connected %u %u", |
1194 |
< |
me.name, RPL_STATSDEBUG, source_p->name, |
1195 |
< |
(unsigned int)sp->is_cti, |
1196 |
< |
(unsigned int)sp->is_sti); |
1168 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1169 |
> |
"T :accepts %u refused %u", |
1170 |
> |
sp->is_ac, sp->is_ref); |
1171 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1172 |
> |
"T :unknown commands %u prefixes %u", |
1173 |
> |
sp->is_unco, sp->is_unpf); |
1174 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1175 |
> |
"T :nick collisions %u unknown closes %u", |
1176 |
> |
sp->is_kill, sp->is_ni); |
1177 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1178 |
> |
"T :wrong direction %u empty %u", |
1179 |
> |
sp->is_wrdi, sp->is_empt); |
1180 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1181 |
> |
"T :numerics seen %u", |
1182 |
> |
sp->is_num); |
1183 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1184 |
> |
"T :auth successes %u fails %u", |
1185 |
> |
sp->is_asuc, sp->is_abad); |
1186 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1187 |
> |
"T :Client Server"); |
1188 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1189 |
> |
":%s %d %s T :connected %u %u", |
1190 |
> |
(unsigned int)sp->is_cl, |
1191 |
> |
(unsigned int)sp->is_sv); |
1192 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1193 |
> |
"T :bytes sent %llu %llu", |
1194 |
> |
sp->is_cbs, sp->is_sbs); |
1195 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1196 |
> |
"T :bytes recv %llu %llu", |
1197 |
> |
sp->is_cbr, sp->is_sbr); |
1198 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1199 |
> |
"T :time connected %u %u", |
1200 |
> |
(unsigned int)sp->is_cti, |
1201 |
> |
(unsigned int)sp->is_sti); |
1202 |
|
} |
1203 |
|
|
1204 |
|
static void |
1240 |
|
{ |
1241 |
|
const struct Client *target_p = ptr->data; |
1242 |
|
|
1243 |
< |
sendto_one(source_p, ":%s %d %s v :%s (%s!%s@%s) Idle: %d", |
1244 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, |
1245 |
< |
ID_or_name(source_p, source_p), target_p->name, |
1246 |
< |
(target_p->serv->by[0] ? target_p->serv->by : "Remote."), |
1247 |
< |
"*", "*", (int)(CurrentTime - target_p->localClient->lasttime)); |
1243 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1244 |
> |
"v :%s (%s!%s@%s) Idle: %d", |
1245 |
> |
target_p->name, |
1246 |
> |
(target_p->serv->by[0] ? target_p->serv->by : "Remote."), |
1247 |
> |
"*", "*", (int)(CurrentTime - target_p->localClient->lasttime)); |
1248 |
|
} |
1249 |
|
|
1250 |
< |
sendto_one(source_p, ":%s %d %s v :%u Server(s)", ID_or_name(&me, source_p), |
1251 |
< |
RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1241 |
< |
dlink_list_length(&serv_list)); |
1250 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1251 |
> |
"v :%u Server(s)", dlink_list_length(&serv_list)); |
1252 |
|
} |
1253 |
|
|
1254 |
|
static void |
1318 |
|
sendB >>= 10; |
1319 |
|
recvB >>= 10; |
1320 |
|
|
1321 |
< |
sendto_one(source_p, ":%s %d %s ? :%u total server(s)", |
1322 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), dlink_list_length(&serv_list)); |
1323 |
< |
sendto_one(source_p, ":%s %d %s ? :Sent total: %7.2f %s", |
1324 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1325 |
< |
_GMKv(sendB), _GMKs(sendB)); |
1326 |
< |
sendto_one(source_p, ":%s %d %s ? :Recv total: %7.2f %s", |
1317 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1318 |
< |
_GMKv(recvB), _GMKs(recvB)); |
1321 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, "? :%u total server(s)", |
1322 |
> |
dlink_list_length(&serv_list)); |
1323 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, "? :Sent total: %7.2f %s", |
1324 |
> |
_GMKv(sendB), _GMKs(sendB)); |
1325 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, "? :Recv total: %7.2f %s", |
1326 |
> |
_GMKv(recvB), _GMKs(recvB)); |
1327 |
|
|
1328 |
|
uptime = (CurrentTime - me.localClient->since); |
1329 |
|
|
1330 |
< |
sendto_one(source_p, ":%s %d %s ? :Server send: %7.2f %s (%4.1f K/s)", |
1331 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1332 |
< |
_GMKv((me.localClient->send.bytes>>10)), |
1333 |
< |
_GMKs((me.localClient->send.bytes>>10)), |
1334 |
< |
(float)((float)((me.localClient->send.bytes) >> 10) / |
1335 |
< |
(float)uptime)); |
1336 |
< |
sendto_one(source_p, ":%s %d %s ? :Server recv: %7.2f %s (%4.1f K/s)", |
1337 |
< |
ID_or_name(&me, source_p), RPL_STATSDEBUG, ID_or_name(source_p, source_p), |
1338 |
< |
_GMKv((me.localClient->recv.bytes>>10)), |
1339 |
< |
_GMKs((me.localClient->recv.bytes>>10)), |
1340 |
< |
(float)((float)((me.localClient->recv.bytes) >> 10) / |
1341 |
< |
(float)uptime)); |
1330 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1331 |
> |
"? :Server send: %7.2f %s (%4.1f K/s)", |
1332 |
> |
_GMKv((me.localClient->send.bytes>>10)), |
1333 |
> |
_GMKs((me.localClient->send.bytes>>10)), |
1334 |
> |
(float)((float)((me.localClient->send.bytes) >> 10) / |
1335 |
> |
(float)uptime)); |
1336 |
> |
sendto_one_numeric(source_p, &me, RPL_STATSDEBUG|SND_EXPLICIT, |
1337 |
> |
"? :Server recv: %7.2f %s (%4.1f K/s)", |
1338 |
> |
_GMKv((me.localClient->recv.bytes>>10)), |
1339 |
> |
_GMKs((me.localClient->recv.bytes>>10)), |
1340 |
> |
(float)((float)((me.localClient->recv.bytes) >> 10) / |
1341 |
> |
(float)uptime)); |
1342 |
|
} |
1343 |
|
|
1344 |
|
/* parse_stats_args() |