return buf;
}
-static void formatted_print(const inet_prefix *a, int port)
+static void formatted_print(const inet_prefix *a, int port, unsigned int ifindex)
{
char buf[1024];
const char *ap = buf;
else
est_len = addr_width + ((est_len-addr_width+3)/4)*4;
}
- printf("%*s:%-*s ", est_len, ap, serv_width, resolve_service(port));
+ if (ifindex) {
+ const char *ifname = ll_index_to_name(ifindex);
+ const int len = strlen(ifname) + 1; /* +1 for percent char */
+
+ printf("%*s%%%s:%-*s ", est_len - len, ap, ifname, serv_width,
+ resolve_service(port));
+ } else
+ printf("%*s:%-*s ", est_len, ap, serv_width, resolve_service(port));
}
struct aafilter
printf("%-6d %-6d ", s.rq, s.wq);
- formatted_print(&s.local, s.lport);
- formatted_print(&s.remote, s.rport);
+ formatted_print(&s.local, s.lport, 0);
+ formatted_print(&s.remote, s.rport, 0);
if (show_options) {
if (s.timer) {
printf("%-6d %-6d ", r->idiag_rqueue, r->idiag_wqueue);
- formatted_print(&s.local, s.lport);
- formatted_print(&s.remote, s.rport);
+ formatted_print(&s.local, s.lport, r->id.idiag_if);
+ formatted_print(&s.remote, s.rport, 0);
if (show_options) {
if (r->idiag_timer) {
printf("%-6d %-6d ", s.rq, s.wq);
- formatted_print(&s.local, s.lport);
- formatted_print(&s.remote, s.rport);
+ formatted_print(&s.local, s.lport, 0);
+ formatted_print(&s.remote, s.rport, 0);
if (show_users) {
char ubuf[4096];