about summary refs log tree commit diff
path: root/include/sys/socket.h
Commit message (Collapse)AuthorAgeFilesLines
* add PF_QIPCRTR, AF_QIPCRTR from linux v4.7 to sys/socket.hSzabolcs Nagy2016-08-301-1/+3
| | | | | macros for qualcom ip router protocol, new in linux commit bdabad3e363d825ddf9679dd431cca0b2c30f881
* make brace placement in public header struct definitions consistentRich Felker2016-07-031-10/+5
| | | | | | | | | | | | | | placing the opening brace on the same line as the struct keyword/tag is the style I prefer and seems to be the prevailing practice in more recent additions. these changes were generated by the command: find include/ arch/*/bits -name '*.h' \ -exec sed -i '/^struct [^;{]*$/{N;s/\n/ /;}' {} + and subsequently checked by hand to ensure that the regex did not pick up any false positives.
* avoid padding gaps in struct sockaddr_storageRich Felker2016-06-091-1/+1
| | | | | | | | | | | | | | | | | compilers are free not to copy, or in some cases to clobber, padding bytes in a structure. while it's an aliasing violation, and thus undefined behavior, to copy or manipulate other sockaddr types using sockaddr_storage, it seems likely that traditional code attempts to do so, and the original intent of the sockaddr_storage structure was probably to allow such usage. in the interest of avoiding silent and potentially dangerous breakage, ensure that there are no actual padding bytes in sockaddr_storage by moving and adjusting the size of the __ss_padding member so that it fits exactly. this change also removes a silent assumption that the alignment of long is equal to its size.
* update sys/socket.h to linux v4.6Szabolcs Nagy2016-06-091-1/+19
| | | | | | | | | | | | kernel connection multiplexor macros AF_KCM, PF_KCM, SOL_KCM were added in linux commit ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 MSG_BATCH sendmsg flag for performance optimization was added in linux commit f092276d85b82504e8a07498f4e9e0c51f06745c SOL_* macros are now synced with linux socket.h which is not a uapi header and glibc did not have the macros either, but that has changed http://sourceware.org/ml/libc-alpha/2016-05/msg00322.html
* add SO_CNX_ADVICE to sys/socket.h, new in linux v4.6Szabolcs Nagy2016-06-091-0/+1
| | | | | | new socket option so application can give advice about routing path quality of connected udp sockets, added in linux commit a87cb3e48ee86d29868d3f59cfb9ce1a8fa63314
* fix undefined pointer arithmetic in CMSG_NXTHDR macroRich Felker2016-05-221-3/+3
| | | | | | | | previously, the only way the stopping condition could be met with correct lengths in the headers invoked undefined behavior, adding sizeof(struct cmsghdr) beyond the end of the cmsg buffer. instead, compute and compare sizes rather than pointers.
* add SO_ATTACH_REUSEPORT_[CE]BPF socket options from linux v4.5Szabolcs Nagy2016-03-191-1/+2
| | | | | | new socket options for setting classic or extended BPF program for sockets in a SO_REUSEPORT group. added in linux commit 538950a1b7527a0a52ccd9337e3fcd304f027f13
* add AF_MPLS (PF_MPLS) address family to socket.hSzabolcs Nagy2016-01-241-0/+2
| | | | new in linux 4.0 commit 0189197f441602acdca3f97750d392a895b778fd.
* add MSG_FASTOPEN sendmsg/sendto flag to socket.hSzabolcs Nagy2016-01-241-0/+1
| | | | | This was new in linux 3.5 in commit cf60af03ca4e71134206809ea892e49b92a88896, needed for tcp fastopen feature (sending data in TCP SYN packet).
* socket.h: fix SO_* for mipsRoman Yeryomin2015-07-211-3/+3
| | | | Signed-off-by: Roman Yeryomin <roman@ubnt.com>
* add new socket options SO_INCOMING_CPU, SO_ATTACH_BPF, SO_DETACH_BPFSzabolcs Nagy2015-02-091-0/+4
| | | | | | | | | | | | | these socket options are new in linux v3.19, introduced in commit 2c8c56e15df3d4c2af3d656e44feb18789f75837 and commit 89aa075832b0da4402acebd698d0411dcc82d03e with SO_INCOMING_CPU the cpu can be queried on which a socket is managed inside the kernel and optimize polling of large number of sockets accordingly. SO_ATTACH_BPF lets eBPF programs (created by the bpf syscall) to be attached to sockets.
* implement sendmmsg and recvmmsgRich Felker2014-06-191-0/+11
| | | | | | | these are not pure syscall wrappers because they have to work around kernel API bugs on 64-bit archs. the workarounds could probably be made somewhat more efficient, but at the cost of more complexity. this may be revisited later.
* add SO_BPF_EXTENSIONS socket optionSzabolcs Nagy2014-05-301-0/+1
| | | | | this was introduced to query BPF extension support with getsockopt in linux 3.14, commit ea02f9411d9faa3553ed09ce0ec9f00ceae9885e
* sys/socket.h: add the SO_MAX_PACING_RATE SOL_SOCKET optionSzabolcs Nagy2014-02-251-0/+1
| | | | introduced in linux v3.13, 62748f32d501f5d3712a7c372bbb92abc7c62bc7
* fix remaining known namespace violations for netinet/in.hRich Felker2014-01-081-0/+4
| | | | | | | | | | | | | | | | | | | | the imr_, imsf_, ip6_, ip6m_, ipi_, ipi6_, SCM_, and SOL_ prefixes are not in the reserved namespace for this header. thus the constants and structures using them need to be protected under appropriate feature test macros. this also affects some headers which are permitted to include netinet/in.h, particularly netdb.h and arpa/inet.h. the SOL_ macros are moved to sys/socket.h where they are in the reserved namespace (SO*). they are still accessible via netinet/in.h since it includes sys/socket.h implicitly (which is permitted). the SCM_SRCRT macro is simply removed, since the definition used for it, IPV6_RXSRCRT is not defined anywhere. it could be re-added, this time in sys/socket.h, if the appropriate value can be determined; however, given that the erroneous definition was not caught, it is unlikely that any software actually attempts to use SCM_SRCRT.
* move struct ucred under _GNU_SOURCE in sys/socket.h for clean posix namespaceSzabolcs Nagy2013-12-041-0/+2
|
* fix SHUT_WR typo in sys/socket.h and duplicate definitions of SHUT_*Szabolcs Nagy2013-12-041-5/+1
|
* fix typo in socket.h (wrong macro name)Szabolcs Nagy2013-10-181-1/+1
|
* sys/socket.h: add new SO_BUSY_POLL socket optionSzabolcs Nagy2013-09-151-0/+1
| | | | low latency busy poll sockets are new in linux v3.11
* add protocol families PF_IB and PF_VSOCK to socket.hSzabolcs Nagy2013-07-251-1/+5
| | | | | | | | linux commit 8d36eb01da5d371feffa280e501377b5c450f5a5 (2013-05-29) added PF_IB for InfiniBand linux commit d021c344051af91f42c5ba9fdedc176740cbd238 (2013-02-06) added PF_VSOCK for VMware sockets
* add SO_SELECT_ERR_QUEUE to socket.hSzabolcs Nagy2013-07-241-0/+1
| | | | introduced in linux-v3.10 commit 7d4c04fc170087119727119074e72445f2bb192b
* add new socket options to sys/socket.h following linuxSzabolcs Nagy2013-04-011-2/+17
|
* fix some obscure header type size/alignment issuesRich Felker2013-03-041-4/+2
|
* add missing protocol families to sys/socket.hSzabolcs Nagy2013-01-121-1/+11
| | | | | missing protocol families based on current linux headers: PF_RDS, PF_LLC, PF_CAN, PF_TIPC, PF_NFC
* socket.h: add SO_(SND/RCV)BUFFORCE to generic blockrofl0r2012-12-191-0/+2
|
* disable SO_REUSEPORT in sys/socket.hRich Felker2012-11-151-1/+1
| | | | | | although a number is reserved for it, this option is not implemented on Linux and does not work. defining it causes some applications to use it, and subsequently break due to its failure.
* fix numerous mips abi constant definition mismatchesRich Felker2012-11-051-0/+7
|
* always expose accept4Rich Felker2012-09-291-4/+1
| | | | it will be in the next version of POSIX
* add acct, accept4, setns, and dup3 syscalls (linux extensions)Rich Felker2012-09-081-0/+4
| | | | based on patch by Justin Cormack
* remove all remaining redundant __restrict/__inline/_Noreturn defsRich Felker2012-09-081-5/+1
|
* use restrict everywhere it's required by c99 and/or posix 2008Rich Felker2012-09-061-5/+11
| | | | | | | | to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
* fix socket.h on mipsRich Felker2012-08-051-0/+3
| | | | | why does mips have to be gratuitously incompatible in every possible imaginable way?
* workaround another sendmsg kernel bug on 64-bit machinesRich Felker2012-07-121-7/+0
| | | | | | | | | the kernel wrongly expects the cmsg length field to be size_t instead of socklen_t. in order to work around the issue, we have to impose a length limit and copy to a local buffer. the length limit should be more than sufficient for any real-world use; these headers are only used for passing file descriptors and permissions between processes over unix sockets.
* cleanup more bits cruft (sysmacros and socket)Rich Felker2011-09-181-0/+196
|
* fix some struct padding to match LSB/glibc ABI where it may be helpfulRich Felker2011-06-161-2/+4
|
* extensive header cleanup for standards conformance & correctnessRich Felker2011-02-141-0/+1
| | | | | thanks to Peter Mazinger (psm) for pointing many of these issues out and submitting a patch on which this commit is loosely based
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+64