summaryrefslogtreecommitdiffstats
path: root/templates/man3/cmsg.3.pot
diff options
context:
space:
mode:
Diffstat (limited to 'templates/man3/cmsg.3.pot')
-rw-r--r--templates/man3/cmsg.3.pot632
1 files changed, 632 insertions, 0 deletions
diff --git a/templates/man3/cmsg.3.pot b/templates/man3/cmsg.3.pot
new file mode 100644
index 00000000..ceaad0da
--- /dev/null
+++ b/templates/man3/cmsg.3.pot
@@ -0,0 +1,632 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 16:54+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "CMSG"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - access ancillary data"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
+"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
+"B< struct cmsghdr *>cmsgB<);>\n"
+"B<size_t CMSG_ALIGN(size_t >I<length>B<);>\n"
+"B<size_t CMSG_SPACE(size_t >I<length>B<);>\n"
+"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
+"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"These macros are used to create and access control messages (also called "
+"ancillary data) that are not a part of the socket payload. This control "
+"information may include the interface the packet was received on, various "
+"rarely used header fields, an extended error description, a set of file "
+"descriptors, or UNIX credentials. For instance, control messages can be "
+"used to send additional header fields such as IP options. Ancillary data is "
+"sent by calling B<sendmsg>(2) and received by calling B<recvmsg>(2). See "
+"their manual pages for more information."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Ancillary data is a sequence of I<cmsghdr> structures with appended data. "
+"See the specific protocol man pages for the available control message "
+"types. The maximum ancillary buffer size allowed per socket can be set "
+"using I</proc/sys/net/core/optmem_max>; see B<socket>(7)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<cmsghdr> structure is defined as follows:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct cmsghdr {\n"
+" size_t cmsg_len; /* Data byte count, including header\n"
+" (type is socklen_t in POSIX) */\n"
+" int cmsg_level; /* Originating protocol */\n"
+" int cmsg_type; /* Protocol-specific type */\n"
+"/* followed by\n"
+" unsigned char cmsg_data[]; */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The sequence of I<cmsghdr> structures should never be accessed directly. "
+"Instead, use only the following macros:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_FIRSTHDR>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"returns a pointer to the first I<cmsghdr> in the ancillary data buffer "
+"associated with the passed I<msghdr>. It returns NULL if there isn't enough "
+"space for a I<cmsghdr> in the buffer."
+msgstr ""
+
+#. #-#-#-#-# archlinux: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# debian-bookworm: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TP
+#. #-#-#-#-# debian-unstable: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-40: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-rawhide: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# mageia-cauldron: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-leap-15-6: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-tumbleweed: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_NXTHDR>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"returns the next valid I<cmsghdr> after the passed I<cmsghdr>. It returns "
+"NULL when there isn't enough space left in the buffer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When initializing a buffer that will contain a series of I<cmsghdr> "
+"structures (e.g., to be sent with B<sendmsg>(2)), that buffer should first "
+"be zero-initialized to ensure the correct operation of B<CMSG_NXTHDR>()."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_ALIGN>(),"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"given a length, returns it including the required alignment. This is a "
+"constant expression."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_SPACE>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"returns the number of bytes an ancillary element with payload of the passed "
+"data length occupies. This is a constant expression."
+msgstr ""
+
+#. #-#-#-#-# archlinux: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# debian-bookworm: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TP
+#. #-#-#-#-# debian-unstable: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-40: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-rawhide: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# mageia-cauldron: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-leap-15-6: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-tumbleweed: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_DATA>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"returns a pointer to the data portion of a I<cmsghdr>. The pointer returned "
+"cannot be assumed to be suitably aligned for accessing arbitrary payload "
+"data types. Applications should not cast it to a pointer type matching the "
+"payload, but should instead use B<memcpy>(3) to copy data to or from a "
+"suitably declared object."
+msgstr ""
+
+#. #-#-#-#-# archlinux: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# debian-bookworm: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TP
+#. #-#-#-#-# debian-unstable: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-40: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# fedora-rawhide: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# mageia-cauldron: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-leap-15-6: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#. #-#-#-#-# opensuse-tumbleweed: cmsg.3.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: TQ
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_LEN>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"returns the value to store in the I<cmsg_len> member of the I<cmsghdr> "
+"structure, taking into account any necessary alignment. It takes the data "
+"length as an argument. This is a constant expression."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To create ancillary data, first initialize the I<msg_controllen> member of "
+"the I<msghdr> with the length of the control message buffer. Use "
+"B<CMSG_FIRSTHDR>() on the I<msghdr> to get the first control message and "
+"B<CMSG_NXTHDR>() to get all subsequent ones. In each control message, "
+"initialize I<cmsg_len> (with B<CMSG_LEN>()), the other I<cmsghdr> header "
+"fields, and the data portion using B<CMSG_DATA>(). Finally, the "
+"I<msg_controllen> field of the I<msghdr> should be set to the sum of the "
+"B<CMSG_SPACE>() of the length of all control messages in the buffer. For "
+"more information on the I<msghdr>, see B<recvmsg>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For portability, ancillary data should be accessed using only the macros "
+"described here."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>() are constant "
+"expressions (assuming their argument is constant), meaning that these values "
+"can be used to declare the size of global variables. This may not be "
+"portable, however."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr ""
+
+#. type: TQ
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CMSG_ALIGN>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
+"IPv6 advanced API described in RFC\\ 2292 and SUSv2."
+msgstr ""
+
+#. https://www.austingroupbugs.net/view.php?id=978#c3242
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<CMSG_SPACE>() and B<CMSG_LEN>() will be included in the next POSIX "
+"release (Issue 8)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This code looks for the B<IP_TTL> option in a received ancillary buffer:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct msghdr msgh;\n"
+"struct cmsghdr *cmsg;\n"
+"int received_ttl;\n"
+"\\&\n"
+"/* Receive auxiliary data in msgh */\n"
+"\\&\n"
+"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
+" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
+" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
+" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
+" memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));\n"
+" break;\n"
+" }\n"
+"}\n"
+"\\&\n"
+"if (cmsg == NULL) {\n"
+" /* Error: IP_TTL not enabled or small buffer or I/O error */\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The code below passes an array of file descriptors over a UNIX domain socket "
+"using B<SCM_RIGHTS>:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct msghdr msg = { 0 };\n"
+"struct cmsghdr *cmsg;\n"
+"int myfds[NUM_FD]; /* Contains the file descriptors to pass */\n"
+"char iobuf[1];\n"
+"struct iovec io = {\n"
+" .iov_base = iobuf,\n"
+" .iov_len = sizeof(iobuf)\n"
+"};\n"
+"union { /* Ancillary data buffer, wrapped in a union\n"
+" in order to ensure it is suitably aligned */\n"
+" char buf[CMSG_SPACE(sizeof(myfds))];\n"
+" struct cmsghdr align;\n"
+"} u;\n"
+"\\&\n"
+"msg.msg_iov = &io;\n"
+"msg.msg_iovlen = 1;\n"
+"msg.msg_control = u.buf;\n"
+"msg.msg_controllen = sizeof(u.buf);\n"
+"cmsg = CMSG_FIRSTHDR(&msg);\n"
+"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
+"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
+"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
+"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For a complete code example that shows passing of file descriptors over a "
+"UNIX domain socket, see B<seccomp_unotify>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<recvmsg>(2), B<sendmsg>(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "RFC\\ 2292"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2022-10-29"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. https://www.austingroupbugs.net/view.php?id=978#c3242
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
+"IPv6 advanced API described in RFC\\ 2292 and SUSv2. B<CMSG_FIRSTHDR>(), "
+"B<CMSG_NXTHDR>(), and B<CMSG_DATA>() are specified in POSIX.1-2008. "
+"B<CMSG_SPACE>() and B<CMSG_LEN>() will be included in the next POSIX "
+"release (Issue 8)."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid "B<CMSG_ALIGN>() is a Linux extension."
+msgstr ""
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"For portability, ancillary data should be accessed using only the macros "
+"described here. B<CMSG_ALIGN>() is a Linux extension and should not be "
+"used in portable programs."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct msghdr msgh;\n"
+"struct cmsghdr *cmsg;\n"
+"int received_ttl;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* Receive auxiliary data in msgh */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
+" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
+" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
+" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
+" memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));\n"
+" break;\n"
+" }\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"if (cmsg == NULL) {\n"
+" /* Error: IP_TTL not enabled or small buffer or I/O error */\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct msghdr msg = { 0 };\n"
+"struct cmsghdr *cmsg;\n"
+"int myfds[NUM_FD]; /* Contains the file descriptors to pass */\n"
+"char iobuf[1];\n"
+"struct iovec io = {\n"
+" .iov_base = iobuf,\n"
+" .iov_len = sizeof(iobuf)\n"
+"};\n"
+"union { /* Ancillary data buffer, wrapped in a union\n"
+" in order to ensure it is suitably aligned */\n"
+" char buf[CMSG_SPACE(sizeof(myfds))];\n"
+" struct cmsghdr align;\n"
+"} u;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"msg.msg_iov = &io;\n"
+"msg.msg_iovlen = 1;\n"
+"msg.msg_control = u.buf;\n"
+"msg.msg_controllen = sizeof(u.buf);\n"
+"cmsg = CMSG_FIRSTHDR(&msg);\n"
+"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
+"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
+"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
+"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-15"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""