#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
-#include <syslog.h>
#include <fcntl.h>
#include <string.h>
#include <sys/socket.h>
#include "rt_names.h"
#include "utils.h"
#include "ip_common.h"
+#include "json_print.h"
extern struct rtnl_handle rth;
return -1;
}
- fprintf(fp, "token %s dev %s\n",
- format_host_rta(ifi->ifi_family, ltb[IFLA_INET6_TOKEN]),
- ll_index_to_name(ifi->ifi_index));
+ open_json_object(NULL);
+ print_string(PRINT_FP, NULL, "token ", NULL);
+ print_color_string(PRINT_ANY,
+ ifa_family_color(ifi->ifi_family),
+ "token", "%s",
+ format_host_rta(ifi->ifi_family, ltb[IFLA_INET6_TOKEN]));
+ print_string(PRINT_FP, NULL, " dev ", NULL);
+ print_color_string(PRINT_ANY, COLOR_IFNAME,
+ "ifname", "%s\n",
+ ll_index_to_name(ifi->ifi_index));
+ close_json_object();
fflush(fp);
return 0;
argc--; argv++;
}
- if (rtnl_wilddump_request(&rth, af, RTM_GETLINK) < 0) {
+ if (rtnl_linkdump_req(&rth, af) < 0) {
perror("Cannot send dump request");
return -1;
}
+ new_json_obj(json);
if (rtnl_dump_filter(&rth, print_token, &da) < 0) {
+ delete_json_obj();
fprintf(stderr, "Dump terminated\n");
return -1;
}
+ delete_json_obj();
return 0;
}
addattr_nest_end(&req.n, afs6);
addattr_nest_end(&req.n, afs);
- if (rtnl_talk(&rth, &req.n, NULL, 0) < 0)
+ if (rtnl_talk(&rth, &req.n, NULL) < 0)
return -2;
return 0;