<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body wsmode="reply" bgcolor="#FFFFFF" text="#000000">
I'm having issues with this release, specifically around the fact
that nl.c::nl_recvmsgs() now returns a positive number on successful
reads indicating the number of messages that were actually recv'd.
The issue is that I have run across several instances where the
caller of nl.c::nl_recvmsgs() "assumes" that a return of 0 is a
successful read instead of >0 and therefore does not take the
same paths as 3.2.7. A good example is that when I call
link.c::rtnl_link_get_kernel() the code should wait for an ACK if an
object is returned, but is does not because the return of
nl.c::nl_pickup() is now >0 instead of 0. Now we are out of
order/sequence with our ACK packets and things go downhill from
there.<br>
<br>
There are probably other situations, but that was the one I tracked
down. What was the reason for this API change to nl_recvmsgs() and
what will I break if I remove the nrecv counter in recvmsgs()?<br>
<div class="moz-signature">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<br>
Scott Bonar<br>
</div>
<br>
On 04/26/2012 03:35 AM, Thomas Graf wrote:
<blockquote cite="mid:20120426093557.GK27640@canuck.infradead.org"
type="cite">
<pre wrap="">
Hello everyone
I'm pleased to announce the release of libnl 3.2.8. It contains
various fixes and several new API additions.
Thanks to everyone who contributed to this release.
Brett Ciphery (1):
add new function to provide neighbour event parsing
Nicolas CARRIER (1):
Memory leak in classid.c
Romary Sonrier (1):
missing extended Table attribute for lib/route/
Shriram Rajagopalan (1):
Support plug qdisc - queue traffic until explicit release
Thierry Reding (1):
Add new nl_cache_clone() function.
Thomas Graf (25):
doc: Fix typos in autoconf example
doc: Fix incorrect nl_socket_add_memberships() example
genl-ctrl-list: Introduce -d|--details as a shortcut for --format=details
genl-ctrl-list: Provide manual page
genl-ctrl-list: fix copyright and summary
genl-ctrl-list: Mark for installation
cache_mngr: document uncommon error codes
tests: Convert tests/Makefile to use automake
tests: fix test programs to compile again
cache_mngr: Don't modify callback setup of socket
cache_manager: Move documentation to doc/core.txt
cache_mngr: Automatically allocate socket if needed
test-cache-mngr: Let the cache manager allocate the socket
cache_mngr: Fix memory corruption after resizing
nl: Make nl_recvmsgs() return the number of netlink messages processed
cache_mngr: Let nl_cache_mngr_data_ready() read multiple messages
cache_mngr: API doc updates
cache_mngr: Provide nl_cache_mngr_info() to pring cache manager details
test-cache-mngr: Allow for management of arbitary caches via argument string
cache_mngr: Make providing the result pointer to nl_cache_mngr_add() optional
genl: Make genl_unregister() a NOP if NULL pointer is passed
cache: improve documentation of co_event_filter
cache: Add co_include_event allowing caches to provide their own nl_cache_include() implementation
object: Add functions to access the object type, cache and object ops
3.2.8 release
The source tarball can be found at the usual location:
<a class="moz-txt-link-freetext" href="http://www.infradead.org/~tgr/libnl/">http://www.infradead.org/~tgr/libnl/</a>
Thomas
_______________________________________________
libnl mailing list
<a class="moz-txt-link-abbreviated" href="mailto:libnl@lists.infradead.org">libnl@lists.infradead.org</a>
<a class="moz-txt-link-freetext" href="http://lists.infradead.org/mailman/listinfo/libnl">http://lists.infradead.org/mailman/listinfo/libnl</a>
!SIG:4f99175a29451982320748!
</pre>
</blockquote>
</body>
</html>