MFC r271578,r271579,r271847,r272102,r272843,r273752,r277920,r277921,r277925,r277926,r277927,r279421,r279422,r279423:
r271578 (by pjd):
Remove the limit on descriptors that can be send in one nvlist.
Submitted by: Mariusz Zaborski
r271579 (by pjd):
Use non-recursive algorithm for traversing nvlists. This also removes
the limit on number of nested nvlists.
Submitted by: Mariusz Zaborski
r271847 (by pjd):
Don't use nvl in case of a failure.
Reported by: Coverity
CID: 1238922
r272102 (by pjd):
Document the new nvlist_get_parent() function.
Submitted by: Mariusz Zaborski
r272843 (by pjd):
Fix problem on big endian systems introduced in r271579 - when we were
returning from handling a nested nvlist we were resetting big-endian flag.
Reported by: Kuleshov Aleksey @ yandex.ru
Tested by: Kuleshov Aleksey @ yandex.ru
r273752 (by jmg):
fix typo, properly install a link to nv for nvlist_freev...
r277920 (by pjd):
If moving descriptor or binary data to an nvlist fails, we need to close the
descriptor or free the memory before returning.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
While here, protect errno, so it won't be overwritted by close(2) or free(3).
r277921 (by pjd):
Modify nvlist_get_parent() API to take additional cookie argument.
This allow for non-recursive iteration over nested nvlists, as in documented
example.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
r277925 (by pjd):
Handle empty nvlists correctly.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
r277926 (by pjd):
Add missing nvlist_get_parent(3) link.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
r277927 (by pjd):
Make gcc happy.
Reported by: bz
r279421 (by rstone):
Make libnv headers includable from C++
Differential Revision: https://reviews.freebsd.org/D1868
Reviewed by: jfv, pjd
Sponsored by: Sandvine Inc.
r279422 (by rstone):
Tests of basic nvlist add functions
Differential Revision: https://reviews.freebsd.org/D1869
Reviewed by: jfv, pjd
Sponsored by: Sandvine Inc.
r279423 (by rstone):
Revert r279422. My "apply patch and commit" script wasn't adding
new files properly.
Pointy hat to: rstone