History log of /bionic/libc/include/sys/socket.h
Revision Date Author Comments
cb302f932a3532f1484e1e70894e9b1199384283 20-Apr-2017 Josh Gao <jmgao@google.com> The future is now.

__INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26)

Bug: http://b/37437368
Test: treehugger
Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
95b59c520b24aabcdc63b93a3f1eaf73e57a3afe 14-Feb-2017 Daniel Micay <danielmicay@gmail.com> add fortified implementations of send/sendto

Bug: None
Test: Bullhead builds+boots; CtsBionicTestCases passes.
Change-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae
156d5a8ae93c6515919dd6706481991c7c0dc600 10-Feb-2017 George Burgess IV <gbiv@google.com> Match __bos0 to __pass_object_size0 in FORTIFY

pass_object_size(N) forwards the result of __builtin_object_size(param,
N) to a function. So, a function that looks like:

size_t foo(void *const p __pass_object_size) { return __bos0(p); }
int bar = foo(baz);

would effectively be turned into

size_t foo(void *const p, size_t sz) { return sz; }
int bar = foo(baz, __bos(baz)); // note that this is not __bos0

This is bad, since if we're using __bos0, we want more relaxed
objectsize checks.

__bos0 should be more permissive than __bos in all cases, so this
change Should Be Fineā„¢.

This change also makes GCC and clang share another function's
implementation (recv). I just realized we need to add special
diagnostic-related overloads bits for clang to it, but I can do that in
another patch.

Bug: None
Test: Bullhead builds and boots; CtsBionicTestCases passes.
Change-Id: I6818d0041328ab5fd0946a1e57321a977c1e1250
7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd 09-Feb-2017 George Burgess IV <gbiv@google.com> libc: add clang FORTIFY support

This patch adds clang-style FORTIFY to Bionic. For more information on
FORTIFY, please see https://goo.gl/8HS2dW . This implementation works
for versions of clang that don't support diagnose_if, so please see the
"without diagnose_if" sections. We plan to swap to a diagnose_if-based
FORTIFY later this year (since it doesn't really add any features; it
just simplifies the implementation a lot, and it gives us much prettier
diagnostics)

Bug: 32073964
Test: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests
pass on Angler and Bullhead.

Change-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b
8d7687143843c4fe8c8e79ea8abbc2d6b9c889f2 14-Dec-2016 Elliott Hughes <enh@google.com> Update socket constants.

This corresponds to Linux 4.10.

Bug: N/A
Test: builds
Change-Id: Ia7135c9fec181613b79726d1b16867133cdefd04
5bc78c8bcd0c1e634c04029309ede3ec05f2d424 16-Nov-2016 Elliott Hughes <enh@google.com> Add and use constants for the Android API levels.

Test: bionic tests still pass
Change-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a
11f0e10c4911e39733145194ee78bb65d684fff4 09-Sep-2016 Dan Albert <danalbert@google.com> Provide an inline __cmsg_nxthdr.

This was defined as an inline in the legacy NDK headers. Keep that
here until we can get it into libandroid_support.

Test: make checkbuild
Bug: http://b/30465923
Change-Id: I62393b58e4fba3bc7337cc5ecf4ae1590b0e9917
2b9605fec499b24bcbe9ff408b934455b4d85e57 16-Aug-2016 Elliott Hughes <enh@google.com> Fix various <sys/socket.h> prototypes.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html

Interestingly, recvmmsg/sendmmsg do actually return int, unlike their
recv/recvmsg/sendv/sendvmsg siblings.

The generated assembler stubs don't actually change.

Change-Id: If71cd02431903774de9bbce77fbedf6b03f90c0f
8197aca7f2110fa764c1aecd005d878d8ddd3a3c 12-Aug-2016 Elliott Hughes <enh@google.com> Fix recvfrom prototype.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html

Change-Id: Iba203c74045c88e53e28c2e0c8bc1f9ac63ce23e
dfa6bbb54bd9ab2a71df4c066427ea804608e20b 03-Aug-2016 Dan Albert <danalbert@google.com> Guard fortify inlines with __ANDROID_API__.

Test: make checkbuild with libc ndk_library patches applied
Change-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017
3b2096a9d6edd74622b94cacc76b77100f919b84 23-Jul-2016 Elliott Hughes <enh@google.com> Remove unnecessary 'extern's.

Change-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03
508d292f8deb2933914b0ceef56908cdd4ee589f 22-Jul-2016 Elliott Hughes <enh@google.com> Only define sa_family_t once.

Change-Id: Icf700910c836d22c8a27ad026ec8af11697edd5a
14adff1cfa06a3d4d3281a9bf7848b556d84c20d 29-Apr-2016 Josh Gao <jmgao@google.com> Add versioning information to symbols.

Bug: http://b/28178111
Change-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c
c7ca8f3a6332638021b9ae99e1ce15739350ee98 28-Jan-2016 Greg Hackmann <ghackmann@google.com> socket.h: update AF_* constants

Change-Id: I8ca219fa429ca8d8f872ed1db98275cd1a06f00b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
d75abb9614b04c3da3104099752726f9d1c6d8c7 26-Aug-2015 Greg Hackmann <ghackmann@google.com> Fix SOCK_* flag definitions

MIPS and the rest of the world only disagree on the first two SOCK_*
constants, so restructure the #ifdef accordingly.

As a deliberate side effect, this fixes SOCK_DCCP being missing on
non-MIPS platforms.

Change-Id: I2267008f1121a7eebe1ed9097afab6e612bce7f0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
268af26359c8f1c87585e26d2763e3a3a63f8714 11-Sep-2015 Dan Albert <danalbert@google.com> CMSG_DATA should return an unsigned char*.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
> CMSG_DATA(cmsg)
> If the argument is a pointer to a cmsghdr structure, this macro
> shall return an unsigned character pointer to the data array
> associated with the cmsghdr structure.

Change-Id: I3f89ba19cbca4e6727abc65a2bbcd59267892ba8
55ee845b8ec0861d09197b32fbb5f2d34320155d 07-Oct-2014 Dan Albert <danalbert@google.com> Inline helpers need to be exported unmangled.

__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

(cherry-pick of 658727e111ed6dee7be5239494f0764f7b1b02f8 with conflicts
in stdio.h and string.h.)

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
658727e111ed6dee7be5239494f0764f7b1b02f8 07-Oct-2014 Dan Albert <danalbert@google.com> Inline helpers need to be exported unmangled.

__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
d87d401ab134996d1f25f5b63cefb48b5b5877c8 18-Aug-2014 Elliott Hughes <enh@google.com> Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Bug: 17784968

(cherry picked from commit 2cfb4e8e2e217ef0e4140dcbf9b3da809781158c)

Change-Id: I5e96146f92c0521248c78c0933bec5e9a9818222
2cfb4e8e2e217ef0e4140dcbf9b3da809781158c 18-Aug-2014 Elliott Hughes <enh@google.com> Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522
291da8d3533b3ee47f8d742c72d789d3149d15da 18-Jul-2014 Elliott Hughes <enh@google.com> Remove SIOCKILLADDR from <sys/socket.h>.

(cherry picked from commit 8a3d1ca183e19d849728318fe8b0d36856fa000f)

Change-Id: Idb5cc4cff3ece7fa8740db12a19438d1a1c9a6a8
8a3d1ca183e19d849728318fe8b0d36856fa000f 18-Jul-2014 Elliott Hughes <enh@google.com> Remove SIOCKILLADDR from <sys/socket.h>.

Change-Id: I6b64a9abe01c786a9ec26aee1517cb981a4860fb
f6968e3c0822b27e9aa584c3490573f34b1725c1 12-Jul-2014 Elliott Hughes <enh@google.com> Define SIOCKILLADDR which isn't in the common kernel uapi headers.

(cherry picked from commit 2ba2888cac2f04daff7bbaf032d0df7a095b00c3)

Change-Id: I3845871bb44dae94d9a0428af0f562ddfb8bd660
2ba2888cac2f04daff7bbaf032d0df7a095b00c3 12-Jul-2014 Elliott Hughes <enh@google.com> Define SIOCKILLADDR which isn't in the common kernel uapi headers.

Change-Id: I8760950d13a9625aa543e76bc9d6cd86ac782c2e
096b4eb752aa7a5392875cb2f2faf0d67c676ac1 19-Jun-2014 Calin Juravle <calin@google.com> Prefix cmsg_nxthdr with "__".

This brings us on par with glibc.

To avoid breaking clients, temporary keep cmsg_nxthdr until the next NDK
refresh.

Bug: 15822452
Change-Id: I24c24e68c31f4f2b8f3d2df7acd575cb75174173
ff64831b0965c16c95c9f81a148f30a6ef3a6c64 07-Apr-2014 Calin Juravle <calin@google.com> Use glibc structure for __cmsg_nxthdr.

Bug: 13418328
Change-Id: I7e656b373e53e80d708325321e48dcedacf5086d
9cea3775056d0a8d04d49c3983440b89d82a462b 31-Mar-2014 Christopher Ferris <cferris@google.com> Small accept4 fixes.

Put the accept4 test in the sorted order, and put the accept4 define in
sorted order.

Also add the missing SYS_RECVMMSG and SYS_SENDMMSG defines.

Change-Id: Iba55354975e0d5027dbee53f6de752c2df719493
8f2a30a92ab6981cccbc1a9e17b738f7542ae33f 26-Mar-2014 Andrei Emeltchenko <andrei.emeltchenko@intel.com> Add accept4() syscall

Add accept4() using SYSCALLS.TXT and gensyscall

Change-Id: I6f19f29144186d15d46423e10f2cc4b4223719c6
f1de90b3a26d6ec46c0f1c741ef93509fe69f942 19-Mar-2014 Calin Juravle <calin@google.com> Clean up CMSG_*HDR in <sys/socket.h>

Removed __CMSG_NXTHDR, __CMSG_FIRSTHDR and cmsg_nxthdr.

Bug: 13418328
Change-Id: I6b1ed58b41b3f37d41e070c4f222b5bfa512bc48
247dc91889ffc8b71fc3371edba9d834afab96ab 11-Mar-2014 Elliott Hughes <enh@google.com> Take ownership of various simple syscall wrappers.

None of these trivial functions is something we're going to get from BSD.

Change-Id: Iee1d1281b73db67da5ec303da7a49748121464bf
a8b1eb3fcf13fab029a16fa3b6636218a64c4583 01-Mar-2014 Elliott Hughes <enh@google.com> Fix build.

Change-Id: I71cde79263d5f5a8382865b8151f65c5c05ea17b
6ff0c75c838e73d2aeccc0102ab58a7b865172ca 10-Feb-2014 Guillaume Ranquet <guillaumex.ranquet@intel.com> Add recvmmsg and sendmmsg syscalls.

Also add the corresponding constant, struct, and function declarations
to <sys/socket.h>, and perfunctory tests so we know that the symbols
actually exist.

Signed-off-by: Guillaume Ranquet <guillaumex.ranquet@intel.com>
Change-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7
9f87a0b285128542a221f2b69d3b959a4e33c054 07-Feb-2014 Elliott Hughes <enh@google.com> Remove <sys/_types.h>.

Bug: 12213562
Change-Id: I0d10664f9da60739bdbad0408be0dd61eea3c1fe
43d2137af0e2f65b7febf4414e10b979aa0007bf 14-Oct-2013 Andrei Emeltchenko <andrei.emeltchenko@intel.com> Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.

SOCK_CLOEXEC is used to atomically set close-on-exec flag for the new
descriptor(s), and SOCK_NONBLOCK is used to mark descriptor(s) as
non-blocking.

Change-Id: I8ba6a70543d23759e3ddcc7ff9c21b567184d681
60f4f9a5b99a0a66817f50edfc2194a49f8b5146 25-Sep-2013 Nick Kralevich <nnk@google.com> libc: fortify recvfrom()

Fortify calls to recv() and recvfrom().

We use __bos0 to match glibc's behavior, and because I haven't
tested using __bos.

Change-Id: Iad6ae96551a89af17a9c347b80cdefcf2020c505
d73c0b300e2dbaa4cc59f87fc1435661e5e1c736 04-Jan-2013 Elliott Hughes <enh@google.com> Add AF_CAN and PF_CAN (and other missing families).

Change-Id: I2c183a6f5f7a7e81e87dad85d8c9aff9c43ed33a
86ec05acc9df3098c4e99e5b3ad85dcef66712c7 12-Sep-2012 Elliott Hughes <enh@google.com> Update the kernel headers to match external/kernel-headers.

Note that the Linux kernel handed over responsibility for most of the
socket constants to glibc some time ago. Someone had updated our
external/kernel-headers file but not regenerated the bionic headers,
so this change copies the missing stuff from the old bionic <linux/socket.h>
into <sys/socket.h>. This is what glibc does.

I've hacked a few of the other files to #include <sys/socket.h> for
backward compatibility, but even so this requires numerous other
changes to switch people over from direct inclusion of <linux/...> headers.

Change-Id: I0e4af64e631d3cef911a31d90f2f806e058278a0
6437eac15a5b595ab26ef51834509c44695eb7e4 03-Aug-2012 Raghu Gandham <raghu@mips.com> MIPS support to sys/ headers

Change-Id: I32207a1d918e4842da341f6b242ae39c69a83b03
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution