iproute2/lib
David Ahern 05a14fc121 netlink: Change rtnl_dump_done to always show error
The original code which became rtnl_dump_done only shows netlink errors
if the protocol is NETLINK_SOCK_DIAG, but netlink dumps always appends
the length which contains any error encountered during the dump. Update
rtnl_dump_done to always show the error if there is one.

As an *example* without this patch, dumping a route object that exceeds
the internal buffer size terminates with no message to the user -- the
dump just ends because the NLMSG_DONE attribute was received. With this
patch the user at least gets a message that the dump was aborted.

$ ip ro ls
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.10.0.0/16 dev veth1 proto kernel scope link src 10.10.0.1
172.16.1.0/24 dev br0.11 proto kernel scope link src 172.16.1.1
Error: Buffer too small for object
Dump terminated

The point of this patch is to notify the user of a failure versus
silently exiting on a partial dump. Because the NLMSG_DONE attribute
was received, the entire dump needs to be restarted to use a larger
buffer for EMSGSIZE errors. That could be done automatically but it
has other user impacts (e.g., duplicate output if the dump is
restarted) and should be the subject of a different patch.

Signed-off-by: David Ahern <dsahern@gmail.com>
2017-05-30 17:32:38 -07:00
..
Makefile whitespace cleanup 2017-01-12 17:31:20 -08:00
bpf.c bpf: test for valid type in bpf_get_work_dir 2017-03-08 17:57:00 -08:00
color.c color: use "light" colors for dark background 2017-03-03 09:58:05 -08:00
coverity_model.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
dnet_ntop.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
dnet_pton.c dnet: fix strict aliasing warnings 2010-07-23 12:30:48 -07:00
exec.c move cmd_exec to lib utils 2016-12-13 10:20:16 -08:00
fs.c ip vrf: Add command name next to pid 2017-04-16 10:19:32 -07:00
inet_proto.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
ipx_ntop.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
ipx_pton.c utils: provide get_hex to read a hex digit from a char 2016-06-08 09:30:41 -07:00
json_writer.c json_writer: Removed automatic json-object type from the constructor 2016-07-20 12:02:02 -07:00
libgenl.c libgenl: introduce genl_init_handle 2016-08-17 13:59:21 -07:00
libnetlink.c netlink: Change rtnl_dump_done to always show error 2017-05-30 17:32:38 -07:00
ll_addr.c lib/ll_addr: improve ll_addr_n2a() a bit 2016-03-27 10:37:35 -07:00
ll_map.c fix netlink message length checks 2016-10-09 18:48:30 -07:00
ll_proto.c utils: add get_be{16, 32, 64}, use them where possible 2016-06-08 09:30:37 -07:00
ll_types.c ip: update link types to show 6lowpan and ieee802.15.4 monitor 2016-11-12 10:14:03 +03:00
mpls_ntop.c ip: mpls: fix printing of mpls labels 2017-05-11 11:08:02 -07:00
mpls_pton.c ip: add support for more MPLS labels 2017-05-22 11:03:02 -07:00
names.c Replace malloc && memset by calloc 2016-07-20 12:05:24 -07:00
namespace.c lib/namespace: fix fd leakage in non-error case 2015-08-19 16:32:56 -07:00
rt_names.c ip route: Make name of protocol 0 consistent 2017-02-17 15:12:29 -08:00
utils.c ip: add support for more MPLS labels 2017-05-22 11:03:02 -07:00