History log of /freebsd-current/lib/libnv/msgio.c
Revision Date Author Comments
# a2f733ab 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

lib: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# db158b99 06-Dec-2021 Robert Wing <rew@FreeBSD.org>

libnv: let nvlist_recv() pass flags to recv()

Differential Revision: https://reviews.freebsd.org/D32721


# 07cf2bb6 16-Jul-2019 Mark Johnston <markj@FreeBSD.org>

Use a platform-independent constant for PKG_MAX_SIZE.

This constant determines the number of rights libnv will attempt to
transmit in a given control message. In practice, the upper limit
defined by the kernel is machine-dependent and is smaller on 64-bit
kernels than on 32-bit kernels. To ensure that a 32-bit libnv works
as expected when run on a 64-bit kernel, use a limit that will work
on both 32-bit and 64-bit kernels.

PR: 238511
Discussed with: oshogbo
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D20942


# 3810ba1b 14-Apr-2019 Mariusz Zaborski <oshogbo@FreeBSD.org>

libnv: add support for nvlist_send()/nvlist_recv() on Linux

This may be useful for cross build in the feature.

Submitted by: Mindaugas Rasiukevicius <rmind@noxt.eu>
MFC after: 2 weeks


# 032f0fbb 14-Dec-2018 Alex Richardson <arichardson@FreeBSD.org>

Allow bootstrapping libnv on macOS and Linux

MacOS/Linux do not define struct cmsgcred but we need to bootstrap libnv
when building on non-FreeBSD systems. Since they are not used during
bootstrap we can just omit these two functions there.

Reviewed By: emaste
Differential Revision: https://reviews.freebsd.org/D18472


# 991666ad 13-Nov-2018 Mark Johnston <markj@FreeBSD.org>

Ensure that libnv can be used when kern.trap_enotcap=1.

libnv used fcntl(fd, F_GETFL) to test whether fd is a valid file
descriptor. Aside from being racy, this check requires CAP_FCNTL
rights on fd. Instead, use fcntl(fd, F_GETFD), which does not require
any capability rights.

Also remove some redundant fd_is_valid() checks to avoid extra system
calls; in many cases we were performing this check immediately before
dup()ing the descriptor.

Reviewed by: cem, oshogbo (previous version)
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17963


# 5e53a4f9 25-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

lib: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 08016b31 21-Sep-2017 Mariusz Zaborski <oshogbo@FreeBSD.org>

Remove redundant initialization. Don't use variable - just return the value.
Make scan-build happy by casting to 'void *' instead of 'void **'.

Submitted by: pjd@
MFC after: 1 month
Found by: scan-build and cppcheck
Sponsored by: Wheel Systems


# 586c5854 14-Sep-2014 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Remove the limit on descriptors that can be send in one nvlist.

Submitted by: Mariusz Zaborski


# 3d34ecea 02-Feb-2014 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Assert input arguments to buf_send() and buf_recv().

Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>


# 7f7fe890 02-Feb-2014 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Fix sending empty nvlist.

Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>


# 518eeaee 15-Dec-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

MFp4 @1189139:

Get rid of the msg_peek() function, which has a problem. If there was less
data in the socket buffer than requested by the caller, the function would busy
loop, as select(2) will always return immediately.

We can just receive nvlhdr now, because some time ago we splitted receive of
data from the receive of descriptors.

MFC after: 1 week


# 36da5199 12-Nov-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Bring in libnv library for managing name/value pairs. The following types
are currently supported:

- NV_TYPE_NULL - only name, no data;
- NV_TYPE_BOOL - boolean (true or false);
- NV_TYPE_NUMBER - 64bit unsigned integer;
- NV_TYPE_STRING - C string;
- NV_TYPE_NVLIST - nested nvlist;
- NV_TYPE_DESCRIPTOR - file descriptor;
- NV_TYPE_BINARY - binary data.

For detailed documentation and examples see nv(3) manual page.

Sponsored by: The FreeBSD Foundation