-static const char SNAPSHOT[] = "190107";
+static const char SNAPSHOT[] = "190319";
strcpy(ifr.ifr_name, rta_getattr_str(tb[IFLA_IFNAME]));
if (ioctl(s, SIOCGIFTXQLEN, &ifr) < 0) {
- fprintf(f, "ioctl(SIOCGIFTXQLEN) failed: %s\n", strerror(errno));
+ fprintf(stderr,
+ "ioctl(SIOCGIFTXQLEN) failed: %s\n",
+ strerror(errno));
close(s);
return;
}
if (flags)
print_hex(PRINT_ANY, "flags", "%x>", flags);
- if (jw) {
+ if (jw)
jsonw_end_array(jw);
- jsonw_destroy(&jw);
- }
}
static void print_rta_cacheinfo(FILE *fp, const struct rta_cacheinfo *ci)
if ((r->rtm_type != RTN_UNICAST || show_details > 0) &&
(!filter.typemask || (filter.typemask & (1 << r->rtm_type))))
- print_string(PRINT_ANY, NULL, "%s ",
+ print_string(PRINT_ANY, "type", "%s ",
rtnl_rtntype_n2a(r->rtm_type, b1, sizeof(b1)));
color = COLOR_NONE;
if (rtnl_talk(&rth, &req.n, &answer) < 0)
return -2;
+ new_json_obj(json);
+
if (connected && !from_ok) {
struct rtmsg *r = NLMSG_DATA(answer);
int len = answer->nlmsg_len;
req.n.nlmsg_flags = NLM_F_REQUEST;
req.n.nlmsg_type = RTM_GETROUTE;
+ delete_json_obj();
free(answer);
if (rtnl_talk(&rth, &req.n, &answer) < 0)
return -2;
return -1;
}
+ delete_json_obj();
free(answer);
return 0;
}
print_string(PRINT_ANY, "goto", "goto %s", "none");
if (frh->flags & FIB_RULE_UNRESOLVED)
- print_null(PRINT_ANY, "unresolved", "unresolved", NULL);
+ print_null(PRINT_ANY, "unresolved",
+ " [unresolved]", NULL);
} else if (frh->action == FR_ACT_NOP) {
print_null(PRINT_ANY, "nop", "nop", NULL);
} else if (frh->action != FR_ACT_TO_TBL) {
if (matches(*argv, "zone") == 0) {
NEXT_ARG();
if (get_u16(&sel.zone, *argv, 10)) {
- fprintf(stderr, "simple: Illegal \"index\"\n");
+ fprintf(stderr, "connmark: Illegal \"zone\"\n");
return -1;
}
argc--;
if (matches(*argv, "index") == 0) {
NEXT_ARG();
if (get_u32(&sel.index, *argv, 10)) {
- fprintf(stderr, "simple: Illegal \"index\"\n");
+ fprintf(stderr, "connmark: Illegal \"index\"\n");
return -1;
}
argc--;