Merge /tmp/iproute2
This commit is contained in:
commit
f4e75c6f40
46
misc/nstat.c
46
misc/nstat.c
|
|
@ -33,6 +33,7 @@ int dump_zeros = 0;
|
||||||
int reset_history = 0;
|
int reset_history = 0;
|
||||||
int ignore_history = 0;
|
int ignore_history = 0;
|
||||||
int no_output = 0;
|
int no_output = 0;
|
||||||
|
int json_output = 0;
|
||||||
int no_update = 0;
|
int no_update = 0;
|
||||||
int scan_interval = 0;
|
int scan_interval = 0;
|
||||||
int time_constant = 0;
|
int time_constant = 0;
|
||||||
|
|
@ -255,11 +256,17 @@ static void load_netstat(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void dump_kern_db(FILE *fp, int to_hist)
|
static void dump_kern_db(FILE *fp, int to_hist)
|
||||||
{
|
{
|
||||||
struct nstat_ent *n, *h;
|
struct nstat_ent *n, *h;
|
||||||
|
const char *eol = "\n";
|
||||||
|
|
||||||
h = hist_db;
|
h = hist_db;
|
||||||
fprintf(fp, "#%s\n", info_source);
|
if (json_output)
|
||||||
|
fprintf(fp, "{ \"%s\": [", info_source);
|
||||||
|
else
|
||||||
|
fprintf(fp, "#%s\n", info_source);
|
||||||
for (n=kern_db; n; n=n->next) {
|
for (n=kern_db; n; n=n->next) {
|
||||||
unsigned long long val = n->val;
|
unsigned long long val = n->val;
|
||||||
if (!dump_zeros && !val && !n->rate)
|
if (!dump_zeros && !val && !n->rate)
|
||||||
|
|
@ -276,15 +283,30 @@ static void dump_kern_db(FILE *fp, int to_hist)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(fp, "%-32s%-16llu%6.1f\n", n->id, val, n->rate);
|
|
||||||
|
if (json_output) {
|
||||||
|
fprintf(fp, "%s { \"id\":\"%s\", \"val\":%llu,"
|
||||||
|
" \"rate\":%.1f }",
|
||||||
|
eol, n->id, val, n->rate);
|
||||||
|
eol = ",\n";
|
||||||
|
} else
|
||||||
|
fprintf(fp, "%-32s%-16llu%6.1f\n", n->id, val, n->rate);
|
||||||
}
|
}
|
||||||
|
if (json_output)
|
||||||
|
fprintf(fp, "\n] }\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dump_incr_db(FILE *fp)
|
static void dump_incr_db(FILE *fp)
|
||||||
{
|
{
|
||||||
struct nstat_ent *n, *h;
|
struct nstat_ent *n, *h;
|
||||||
|
const char *eol = "\n";
|
||||||
|
|
||||||
h = hist_db;
|
h = hist_db;
|
||||||
fprintf(fp, "#%s\n", info_source);
|
if (json_output)
|
||||||
|
fprintf(fp, "{ \"%s\": [", info_source);
|
||||||
|
else
|
||||||
|
fprintf(fp, "#%s\n", info_source);
|
||||||
|
|
||||||
for (n=kern_db; n; n=n->next) {
|
for (n=kern_db; n; n=n->next) {
|
||||||
int ovfl = 0;
|
int ovfl = 0;
|
||||||
unsigned long long val = n->val;
|
unsigned long long val = n->val;
|
||||||
|
|
@ -304,9 +326,18 @@ static void dump_incr_db(FILE *fp)
|
||||||
continue;
|
continue;
|
||||||
if (!match(n->id))
|
if (!match(n->id))
|
||||||
continue;
|
continue;
|
||||||
fprintf(fp, "%-32s%-16llu%6.1f%s\n", n->id, val,
|
|
||||||
n->rate, ovfl?" (overflow)":"");
|
if (json_output) {
|
||||||
|
fprintf(fp, "%s { \"id\":\"%s\", \"val\":%llu,"
|
||||||
|
" \"rate\":%.1f, \"overflow\":%d }",
|
||||||
|
eol, n->id, val, n->rate, ovfl);
|
||||||
|
eol = ",\n";
|
||||||
|
} else
|
||||||
|
fprintf(fp, "%-32s%-16llu%6.1f%s\n", n->id, val,
|
||||||
|
n->rate, ovfl?" (overflow)":"");
|
||||||
}
|
}
|
||||||
|
if (json_output)
|
||||||
|
fprintf(fp, "\n] }\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int children;
|
static int children;
|
||||||
|
|
@ -451,7 +482,7 @@ int main(int argc, char *argv[])
|
||||||
int ch;
|
int ch;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
while ((ch = getopt(argc, argv, "h?vVzrnasd:t:")) != EOF) {
|
while ((ch = getopt(argc, argv, "h?vVzrnasd:t:j")) != EOF) {
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
case 'z':
|
case 'z':
|
||||||
dump_zeros = 1;
|
dump_zeros = 1;
|
||||||
|
|
@ -478,6 +509,9 @@ int main(int argc, char *argv[])
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'j':
|
||||||
|
json_output = 1;
|
||||||
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
case 'V':
|
case 'V':
|
||||||
printf("nstat utility, iproute2-ss%s\n", SNAPSHOT);
|
printf("nstat utility, iproute2-ss%s\n", SNAPSHOT);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue