The 'buffer' member in 'struct nl_dump' will be going away, so this patch ensures that nl_dump_done() no longer uses it to drain the nl_sock.
Signed-off-by: Joe Stringer <[email protected]> --- lib/netlink-socket.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/netlink-socket.c b/lib/netlink-socket.c index c7973bf..fce360d 100644 --- a/lib/netlink-socket.c +++ b/lib/netlink-socket.c @@ -784,18 +784,21 @@ nl_dump_next(struct nl_dump *dump, struct ofpbuf *reply, struct ofpbuf *buffer) int nl_dump_done(struct nl_dump *dump) { + struct ofpbuf buf; + /* Drain any remaining messages that the client didn't read. Otherwise the * kernel will continue to queue them up and waste buffer space. * * XXX We could just destroy and discard the socket in this case. */ + ofpbuf_init(&buf, 4096); while (!dump->status) { struct ofpbuf reply; - if (!nl_dump_next(dump, &reply, &dump->buffer)) { + if (!nl_dump_next(dump, &reply, &buf)) { ovs_assert(dump->status); } } + ofpbuf_uninit(&buf); nl_pool_release(dump->sock); - ofpbuf_uninit(&dump->buffer); return dump->status == EOF ? 0 : dump->status; } -- 1.7.9.5 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
