diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2014-07-23 20:27:53 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2014-07-23 20:27:53 +0000 |
commit | c0ab5b6ced6ec2480ae1dc6def90ae75c454dce7 (patch) | |
tree | 9516f25a6a127ea15e61ecdea645f36bf12ed219 /usr/src | |
parent | 166683d1d7b0589cdf4164ff060a3f68869544ed (diff) | |
download | illumos-joyent-c0ab5b6ced6ec2480ae1dc6def90ae75c454dce7.tar.gz |
OS-3234 npm manta install fails - unknown stream file type20140724release-20140724
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/lib/brand/lx/lx_brand/common/socket.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/usr/src/lib/brand/lx/lx_brand/common/socket.c b/usr/src/lib/brand/lx/lx_brand/common/socket.c index 4dcc174adb..08a7fbc932 100644 --- a/usr/src/lib/brand/lx/lx_brand/common/socket.c +++ b/usr/src/lib/brand/lx/lx_brand/common/socket.c @@ -149,6 +149,11 @@ static const int ltos_socktype[LX_SOCK_PACKET + 1] = { #define LTOS_SOCKTYPE(t) \ ((t) <= LX_SOCK_PACKET ? ltos_socktype[(t)] : SOCK_INVAL) +static const int stol_socktype[SOCK_SEQPACKET + 1] = { + SOCK_NOTSUPPORTED, LX_SOCK_DGRAM, LX_SOCK_STREAM, SOCK_NOTSUPPORTED, + LX_SOCK_RAW, LX_SOCK_RDM, LX_SOCK_SEQPACKET +}; + /* * Linux socket option type definitions * @@ -1644,6 +1649,11 @@ lx_getsockopt(ulong_t *args) r = getsockopt(sockfd, level, optname, optval, optlenp); + if (r == 0 && level == SOL_SOCKET && optname == SO_TYPE) { + /* translate our type back to Linux */ + *(int *)optval = stol_socktype[(*(int *)optval)]; + } + return ((r < 0) ? -errno : r); } |