Changeset View
Changeset View
Standalone View
Standalone View
head/usr.bin/netstat/route.c
Show First 20 Lines • Show All 770 Lines • ▼ Show 20 Lines | rt_stats(void) | ||||
if ((rtsaddr = nl[N_RTSTAT].n_value) == 0) { | if ((rtsaddr = nl[N_RTSTAT].n_value) == 0) { | ||||
xo_emit("{W:rtstat: symbol not in namelist}\n"); | xo_emit("{W:rtstat: symbol not in namelist}\n"); | ||||
return; | return; | ||||
} | } | ||||
if ((rttaddr = nl[N_RTTRASH].n_value) == 0) { | if ((rttaddr = nl[N_RTTRASH].n_value) == 0) { | ||||
xo_emit("{W:rttrash: symbol not in namelist}\n"); | xo_emit("{W:rttrash: symbol not in namelist}\n"); | ||||
return; | return; | ||||
} | } | ||||
kread(rtsaddr, (char *)&rtstat, sizeof (rtstat)); | kread_counters(rtsaddr, (char *)&rtstat, sizeof (rtstat)); | ||||
kread(rttaddr, (char *)&rttrash, sizeof (rttrash)); | kread(rttaddr, (char *)&rttrash, sizeof (rttrash)); | ||||
xo_emit("{T:routing}:\n"); | xo_emit("{T:routing}:\n"); | ||||
#define p(f, m) if (rtstat.f || sflag <= 1) \ | #define p(f, m) if (rtstat.f || sflag <= 1) \ | ||||
xo_emit(m, rtstat.f, plural(rtstat.f)) | xo_emit(m, rtstat.f, plural(rtstat.f)) | ||||
p(rts_badredirect, "\t{:bad-redirects/%hu} " | p(rts_badredirect, "\t{:bad-redirects/%ju} " | ||||
"{N:/bad routing redirect%s}\n"); | "{N:/bad routing redirect%s}\n"); | ||||
p(rts_dynamic, "\t{:dynamically-created/%hu} " | p(rts_dynamic, "\t{:dynamically-created/%ju} " | ||||
"{N:/dynamically created route%s}\n"); | "{N:/dynamically created route%s}\n"); | ||||
p(rts_newgateway, "\t{:new-gateways/%hu} " | p(rts_newgateway, "\t{:new-gateways/%ju} " | ||||
"{N:/new gateway%s due to redirects}\n"); | "{N:/new gateway%s due to redirects}\n"); | ||||
p(rts_unreach, "\t{:unreachable-destination/%hu} " | p(rts_unreach, "\t{:unreachable-destination/%ju} " | ||||
"{N:/destination%s found unreachable}\n"); | "{N:/destination%s found unreachable}\n"); | ||||
p(rts_wildcard, "\t{:wildcard-uses/%hu} " | p(rts_wildcard, "\t{:wildcard-uses/%ju} " | ||||
"{N:/use%s of a wildcard route}\n"); | "{N:/use%s of a wildcard route}\n"); | ||||
#undef p | #undef p | ||||
if (rttrash || sflag <= 1) | if (rttrash || sflag <= 1) | ||||
xo_emit("\t{:unused-but-not-freed/%u} " | xo_emit("\t{:unused-but-not-freed/%u} " | ||||
"{N:/route%s not in table but not freed}\n", | "{N:/route%s not in table but not freed}\n", | ||||
rttrash, plural(rttrash)); | rttrash, plural(rttrash)); | ||||
} | } |