aboutsummaryrefslogtreecommitdiff
path: root/include/netinet/in.h (follow)
Commit message (Expand)AuthorAgeFilesLines
* make brace placement in public header struct definitions consistent•••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. Rich Felker2016-07-031-20/+10
* add IPV6_HDRINCL socket option from linux v4.5•••new in linux commit 715f504b118998c41a2079a17e16bf5a8a114885 same as IP_HDRINCL but for SOL_IPV6 sockets. Szabolcs Nagy2016-03-191-0/+1
* add new IP_BIND_ADDRESS_NO_PORT and IPPROTO_MPLS to netinet/in.h•••IP_BIND_ADDRESS_NO_PORT is a SOL_IP socket option to delay src port allocation until connect in case src ip is set with bind(port=0). new in linux v4.2, commit 90c337da1524863838658078ec34241f45d8394d IPPROTO_MPLS protocol number for mpls over ip. new in linux v4.2, commit 730fc4371333636a00fed32c587fc1e85c5367e2 Szabolcs Nagy2016-01-241-0/+2
* add IP_CHECKSUM socket option to netinet/in.h•••new in linux v4.0, commit ad6f939ab193750cc94a265f58e007fb598c97b7 Szabolcs Nagy2015-04-171-0/+1
* add new IPV6_AUTOFLOWLABEL socket option in netinet/in.h•••added in linux v3.17 commit 753a2ad54ef45e3417a9d49537c2b42b04a2e1be enables automatic flow label generation on transmit Szabolcs Nagy2014-10-081-0/+1
* update netinet/in.h to match the current kernel uapi•••from linux/in.h and linux/in6.h uapi headers the following missing socket options were added: IP_NODEFRAG - used with customized ipv4 headers IPV6_RECVPATHMTU - for ipv6 path mtu IPV6_PATHMTU - for ipv6 path mtu IPV6_DONTFRAG - for ipv6 path mtu IPV6_ADDR_PREFERENCES - RFC5014 Source Address Selection IPV6_MINHOPCOUNT - RFC5082 Generalized TTL Security Mechanism IPV6_ORIGDSTADDR - used by tproxy IPV6_RECVORIGDSTADDR - used by tproxy IPV6_TRANSPARENT - used by tproxy IPV6_UNICAST_IF - ipv6 version of IP_UNICAST_IF and socket option values: IP_PMTUDISC_OMIT - value for IP_MTU_DISCOVER option, new in linux 3.14 IPV6_PMTUDISC_OMIT - same for IPV6_MTU_DISCOVER IPV6_PMTUDISC_INTERFACE - ipv6 version of IP_PMTUDISC_INTERFACE IPV6_PREFER_* - flags for IPV6_ADDR_PREFERENCES not added: ipv6 flow info and flow label related definitions. (it's unclear if libc should define these and namespace polluting type name is involved so they are not provided for now) Szabolcs Nagy2014-05-301-1/+21
* in.h: new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE•••introduced in linux v3.13, 482fc6094afad572a4ea1fd722e7b11ca72022a0 to mitigate dns cache poisoning via fragmentation Szabolcs Nagy2014-02-251-0/+1
* add parens when bit and arith ops are mixed in macros in public headers•••another commit to silence gcc warnings (-Wparentheses) for standard headers. changed macros: LOG_UPTO, IN6_ARE_ADDR_EQUAL Szabolcs Nagy2014-02-111-1/+1
* fix remaining known namespace violations for netinet/in.h•••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. Rich Felker2014-01-081-22/+14
* add netinet/igmp.h and multicast groups to netinet/in.h•••based on patch by Timo Teräs. Rich Felker2013-12-201-0/+5
* add multicast structures from RFC 3678 to netinet/in.h•••and use _GNU_SOURCE || _BSD_SOURCE guards for all of the RFC 3678 namespace polluting things like glibc/uclibc does. Timo Teräs2013-11-231-1/+42
* netinet/in.h: add missing IP protocol numbers from the linux uapi headersSzabolcs Nagy2013-09-151-0/+2
* refactor headers, especially alltypes.h, and improve C++ ABI compat•••the arch-specific bits/alltypes.h.sh has been replaced with a generic alltypes.h.in and minimal arch-specific bits/alltypes.h.in. this commit is intended to have no functional changes except: - exposing additional symbols that POSIX allows but does not require - changing the C++ name mangling for some types - fixing the signedness of blksize_t on powerpc (POSIX requires signed) - fixing the limit macros for sig_atomic_t on x86_64 - making dev_t an unsigned type (ABI matching goal, and more logical) in addition, some types that were wrongly defined with long on 32-bit archs were changed to int, and vice versa; this change is non-functional except for the possibility of making pointer types mismatch, and only affects programs that were using them incorrectly, and only at build-time, not runtime. the following changes were made in the interest of moving non-arch-specific types out of the alltypes system and into the headers they're associated with, and also will tend to improve application compatibility: - netdb.h now includes netinet/in.h (for socklen_t and uint32_t) - netinet/in.h now includes sys/socket.h and inttypes.h - sys/resource.h now includes sys/time.h (for struct timeval) - sys/wait.h now includes signal.h (for siginfo_t) - langinfo.h now includes nl_types.h (for nl_item) for the types in stdint.h: - types which are of no interest to other headers were moved out of the alltypes system. - fast types for 8- and 64-bit are hard-coded (at least for now); only the 16- and 32-bit ones have reason to vary by arch. and the following types have been changed for C++ ABI purposes; - mbstate_t now has a struct tag, __mbstate_t - FILE's struct tag has been changed to _IO_FILE - DIR's struct tag has been changed to __dirstream - locale_t's struct tag has been changed to __locale_struct - pthread_t is defined as unsigned long in C++ mode only - fpos_t now has a struct tag, _G_fpos64_t - fsid_t's struct tag has been changed to __fsid_t - idtype_t has been made an enum type (also required by POSIX) - nl_catd has been changed from long to void * - siginfo_t's struct tag has been removed - sigset_t's has been given a struct tag, __sigset_t - stack_t has been given a struct tag, sigaltstack - suseconds_t has been changed to long on 32-bit archs - [u]intptr_t have been changed from long to int rank on 32-bit archs - dev_t has been made unsigned summary of tests that have been performed against these changes: - nsz's libc-test (diff -u before and after) - C++ ABI check symbol dump (diff -u before, after, glibc) - grepped for __NEED, made sure types needed are still in alltypes - built gcc 3.4.6 Rich Felker2013-07-221-9/+5
* add missing multicast socket options to netinet/in.h•••based on linux headers add the missing MCAST_* options under _GNU_SOURCE as they are not in the reserved namespace (this api was originally specified by RFC 3678) Szabolcs Nagy2013-01-121-0/+17
* add some new-ish IPPROTO constants that were missingRich Felker2013-01-011-0/+3
* add IPPROTO_HOPOPTS to in.hRich Felker2012-09-081-0/+1
* add IPPROTO_MAX to in.hRich Felker2012-09-081-0/+1
* add missing IN6_ARE_ADDR_EQUAL•••written to avoid multiple conditional jumps and avoid ugly repetitive lines in the header file. Rich Felker2012-05-111-0/+5
* add additional compatibility union member for ipv6 addresses•••in6_* is in the reserved namespace, so this is valid Rich Felker2012-05-031-0/+2
* fix all missing instances of __cplusplus checks/extern "C" in headers•••patch by Arvid Picciani (aep) Rich Felker2011-11-101-0/+8
* fix some header typosRich Felker2011-09-201-1/+1
* move invariant netinet/in.h stuff out of bits/in.hRich Felker2011-09-181-2/+147
* add IN_LOOPBACKNET constant (nonstandard but in reserved namespace)Rich Felker2011-04-061-0/+2
* resolve some header namespace non-issues•••after re-reading 2.2.2 of POSIX 2008, all of these are in the correct reserved namespaces and do not need protection. Rich Felker2011-02-201-2/+0
* initial check-in, version 0.5.0Rich Felker2011-02-121-0/+158