* [PATCH] iproute: "ip mroute show" doesn't show all output interfaces
@ 2009-11-23 9:52 Andreas Henriksson
2009-12-02 0:16 ` Stephen Hemminger
0 siblings, 1 reply; 2+ messages in thread
From: Andreas Henriksson @ 2009-11-23 9:52 UTC (permalink / raw)
To: shemminger; +Cc: netdev, Mark Borst
From: Mark Borst <mark@borst.org>
The command "ip mroute show" will only show the first Oif.
mark@flappie:~$ ip mroute show
(192.168.1.1, 224.0.0.123) Iif: _rename Oifs: eth1
mark@flappie:~$ cat /proc/net/ip_mr_cache
Group Origin Iif Pkts Bytes Wrong Oifs
7B0000E0 0101A8C0 2 0 0 0 0:1 1:1
This shows 2 Oifs here. However, ipmroute.c, function read_mroute_list(), uses sscanf() with a %s mask for oiflist, which stops after the first whitespace (i.e. after Oif 0:1). The patch below fixes this to read until the newline (though I'm not sure whether this is the proper way to fix it).
After this patch:
mark@flappie:~/iproute-20090324/ip$ ./ip mroute show
(192.168.1.1, 224.0.0.123) Iif: _rename Oifs: eth1 eth0
This patch originally submitted as http://bugs.debian.org/550097
Signed-off-by: Andreas Henriksson <andreas@fatal.se>
--- iproute-20090324-origdeb/ip/ipmroute.c 2009-10-07 17:21:00.000000000 +0200
+++ iproute-20090324/ip/ipmroute.c 2009-10-07 17:34:01.000000000 +0200
@@ -95,7 +95,7 @@
char obuf[256];
oiflist[0] = 0;
- if (sscanf(buf, "%x%x%d%u%u%u%s", maddr.data, msrc.data, &vifi,
+ if (sscanf(buf, "%x%x%d%u%u%u%[^\n]", maddr.data, msrc.data, &vifi,
&pkts, &b, &w, oiflist) < 6)
continue;
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] iproute: "ip mroute show" doesn't show all output interfaces
2009-11-23 9:52 [PATCH] iproute: "ip mroute show" doesn't show all output interfaces Andreas Henriksson
@ 2009-12-02 0:16 ` Stephen Hemminger
0 siblings, 0 replies; 2+ messages in thread
From: Stephen Hemminger @ 2009-12-02 0:16 UTC (permalink / raw)
To: Andreas Henriksson; +Cc: netdev, Mark Borst
On Mon, 23 Nov 2009 10:52:31 +0100
Andreas Henriksson <andreas@fatal.se> wrote:
> From: Mark Borst <mark@borst.org>
>
> The command "ip mroute show" will only show the first Oif.
>
> mark@flappie:~$ ip mroute show
> (192.168.1.1, 224.0.0.123) Iif: _rename Oifs: eth1
>
> mark@flappie:~$ cat /proc/net/ip_mr_cache
> Group Origin Iif Pkts Bytes Wrong Oifs
> 7B0000E0 0101A8C0 2 0 0 0 0:1 1:1
>
> This shows 2 Oifs here. However, ipmroute.c, function read_mroute_list(), uses sscanf() with a %s mask for oiflist, which stops after the first whitespace (i.e. after Oif 0:1). The patch below fixes this to read until the newline (though I'm not sure whether this is the proper way to fix it).
>
> After this patch:
> mark@flappie:~/iproute-20090324/ip$ ./ip mroute show
> (192.168.1.1, 224.0.0.123) Iif: _rename Oifs: eth1 eth0
>
>
> This patch originally submitted as http://bugs.debian.org/550097
>
> Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Applied with small modification, sscanf... %u%[^\n] would not
skip leading whitespace like the original %u%s but adding a blank
in the format will correct that.
--
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-12-02 0:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-23 9:52 [PATCH] iproute: "ip mroute show" doesn't show all output interfaces Andreas Henriksson
2009-12-02 0:16 ` Stephen Hemminger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).