handle new tcstats

(Logical change 1.77)
diff --git a/tc/tc_filter.c b/tc/tc_filter.c
index 8f2a0b8..74e9969 100644
--- a/tc/tc_filter.c
+++ b/tc/tc_filter.c
@@ -185,7 +185,9 @@
 static __u32 filter_prio;
 static __u32 filter_protocol;
 
-int print_filter(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
+static int print_filter(const struct sockaddr_nl *who,
+			const struct nlmsghdr *n, 
+			void *arg)
 {
 	FILE *fp = (FILE*)arg;
 	struct tcmsg *t = NLMSG_DATA(n);
@@ -252,18 +254,11 @@
 	}
 	fprintf(fp, "\n");
 
-	if (show_stats) {
-		if (tb[TCA_STATS]) {
-			if (RTA_PAYLOAD(tb[TCA_STATS]) < sizeof(struct tc_stats))
-				fprintf(fp, "statistics truncated");
-			else {
-				struct tc_stats st;
-				memcpy(&st, RTA_DATA(tb[TCA_STATS]), sizeof(st));
-				print_tcstats(fp, &st);
-				fprintf(fp, "\n");
-			}
-		}
+	if (show_stats && tb[TCA_STATS]) {
+		print_tcstats_attr(fp, tb[TCA_STATS]);
+		fprintf(fp, "\n");
 	}
+
 	fflush(fp);
 	return 0;
 }