diff options
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 |