int scan_interval;
int time_constant;
int show_errors;
-int pretty;
double W;
char **patterns;
int npatterns;
return 0;
}
-static int get_nlmsg_extended(const struct sockaddr_nl *who,
- struct nlmsghdr *m, void *arg)
+static int get_nlmsg_extended(struct nlmsghdr *m, void *arg)
{
struct if_stats_msg *ifsm = NLMSG_DATA(m);
struct rtattr *tb[IFLA_STATS_MAX+1];
return 0;
}
-static int get_nlmsg(const struct sockaddr_nl *who,
- struct nlmsghdr *m, void *arg)
+static int get_nlmsg(struct nlmsghdr *m, void *arg)
{
struct ifinfomsg *ifi = NLMSG_DATA(m);
struct rtattr *tb[IFLA_MAX+1];
if (is_extended) {
ll_init_map(&rth);
filter_mask = IFLA_STATS_FILTER_BIT(filter_type);
- if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, RTM_GETSTATS,
- filter_mask) < 0) {
+ if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC,
+ filter_mask) < 0) {
perror("Cannot send dump request");
exit(1);
}
exit(1);
}
} else {
- if (rtnl_wilddump_request(&rth, AF_INET, RTM_GETLINK) < 0) {
+ if (rtnl_linkdump_req(&rth, AF_INET) < 0) {
perror("Cannot send dump request");
exit(1);
}
&& verify_forging(fd) == 0) {
FILE *sfp = fdopen(fd, "r");
- load_raw_table(sfp);
- if (hist_db && source_mismatch) {
- fprintf(stderr, "ifstat: history is stale, ignoring it.\n");
- hist_db = NULL;
+ if (!sfp) {
+ fprintf(stderr, "ifstat: fdopen failed: %s\n",
+ strerror(errno));
+ close(fd);
+ } else {
+ load_raw_table(sfp);
+ if (hist_db && source_mismatch) {
+ fprintf(stderr, "ifstat: history is stale, ignoring it.\n");
+ hist_db = NULL;
+ }
+ fclose(sfp);
}
- fclose(sfp);
} else {
if (fd >= 0)
close(fd);