diff options
author | Keith M Wesolowski <wesolows@foobazco.org> | 2013-05-08 18:18:49 +0000 |
---|---|---|
committer | Keith M Wesolowski <wesolows@foobazco.org> | 2013-05-08 18:18:49 +0000 |
commit | 43840e901cacf50a9bb41148069e34ca307524e8 (patch) | |
tree | 2836162f69bba2534e8b9acf9797e5892f103258 /usr/src/lib/libsocket | |
parent | abd43b3991c3becf4fd3cc1a370aeafdc8749a30 (diff) | |
parent | 5dbfd19ad5fcc2b779f40f80fa05c1bd28fd0b4e (diff) | |
download | illumos-joyent-43840e901cacf50a9bb41148069e34ca307524e8.tar.gz |
[illumos-gate merge]
commit 5dbfd19ad5fcc2b779f40f80fa05c1bd28fd0b4e
3713 Implement accept4()
3714 Implement pipe2()
3715 Implement dup3()
3716 Implement mkostemp() and mkostemps()
3719 so_socketpair syscall should preserve FD_CLOEXEC flag
commit 6136c589445a3ea081bd34ab72db1060875b6bcc
3722 link-editor is over restrictive of R_AMD64_32 addends
Conflicts:
usr/src/lib/libc/sparcv9/Makefile.com [copyright]
usr/src/lib/libc/sparc/Makefile.com [copyright]
usr/src/lib/libc/i386/Makefile.com [copyright]
Diffstat (limited to 'usr/src/lib/libsocket')
-rw-r--r-- | usr/src/lib/libsocket/common/llib-lsocket | 3 | ||||
-rw-r--r-- | usr/src/lib/libsocket/common/mapfile-vers | 7 | ||||
-rw-r--r-- | usr/src/lib/libsocket/socket/weaks.c | 11 |
3 files changed, 19 insertions, 2 deletions
diff --git a/usr/src/lib/libsocket/common/llib-lsocket b/usr/src/lib/libsocket/common/llib-lsocket index 104dc78235..3e2bc0a167 100644 --- a/usr/src/lib/libsocket/common/llib-lsocket +++ b/usr/src/lib/libsocket/common/llib-lsocket @@ -22,6 +22,7 @@ * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ /* LINTLIBRARY */ /* PROTOLIB1 */ @@ -82,6 +83,7 @@ int __xnet_socketpair(int domain, int type, int protocol, int *sv); int bind(int s, const struct sockaddr *name, socklen_t namelen); int listen(int s, int backlog); int accept(int s, struct sockaddr *addr, Psocklen_t addrlen); +int accept4(int s, struct sockaddr *addr, Psocklen_t addrlen, int flags); int connect(int s, const struct sockaddr *name, socklen_t namelen); int shutdown(int s, int how); ssize_t recv(int s, void *buf, size_t len, int flags); @@ -100,6 +102,7 @@ int setsockopt(int s, int level, int optname, const void *optval, socklen_t optl int _bind(int s, const struct sockaddr *name, int namelen); int _listen(int s, int backlog); int _accept(int s, struct sockaddr *addr, int *addrlen); +int _accept4(int s, struct sockaddr *addr, int *addrlen, int flags); int _connect(int s, struct sockaddr *name, int namelen); int _shutdown(int s, int how); int _recv(int s, char *buf, int len, int flags); diff --git a/usr/src/lib/libsocket/common/mapfile-vers b/usr/src/lib/libsocket/common/mapfile-vers index 4ecd9350f2..2f7777f395 100644 --- a/usr/src/lib/libsocket/common/mapfile-vers +++ b/usr/src/lib/libsocket/common/mapfile-vers @@ -21,6 +21,7 @@ # # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # +# Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. # # MAPFILE HEADER START @@ -38,6 +39,11 @@ $mapfile_version 2 +SYMBOL_VERSION ILLUMOS_0.1 { # Illumos additions + global: + accept4; +} SUNW_1.7; + SYMBOL_VERSION SUNW_1.7 { global: freeifaddrs; @@ -191,6 +197,7 @@ $endif SYMBOL_VERSION SUNWprivate_1.3 { global: + _accept4; _link_aton; _link_ntoa; _nss_initf_ethers; diff --git a/usr/src/lib/libsocket/socket/weaks.c b/usr/src/lib/libsocket/socket/weaks.c index ffd794647e..51e8d13e06 100644 --- a/usr/src/lib/libsocket/socket/weaks.c +++ b/usr/src/lib/libsocket/socket/weaks.c @@ -24,7 +24,7 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" +/* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ #include <sys/types.h> #include <sys/socket.h> @@ -44,6 +44,7 @@ #pragma weak bind = _bind #pragma weak listen = _listen #pragma weak accept = _accept +#pragma weak accept4 = _accept4 #pragma weak connect = _connect #pragma weak shutdown = _shutdown #pragma weak recv = _recv @@ -92,7 +93,13 @@ _listen(int sock, int backlog) int _accept(int sock, struct sockaddr *addr, int *addrlen) { - return (_so_accept(sock, addr, addrlen, SOV_DEFAULT)); + return (_so_accept(sock, addr, addrlen, SOV_DEFAULT, 0)); +} + +int +_accept4(int sock, struct sockaddr *addr, int *addrlen, int flags) +{ + return (_so_accept(sock, addr, addrlen, SOV_DEFAULT, flags)); } int |