| Index: native_client_sdk/src/libraries/nacl_io/kernel_proxy.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_proxy.cc b/native_client_sdk/src/libraries/nacl_io/kernel_proxy.cc
|
| index f9171e29a6c0af2145a3864f6fc3fd618ec933e2..ab132f4b4c1debe916899a9675ba5cfd74fa1cd7 100644
|
| --- a/native_client_sdk/src/libraries/nacl_io/kernel_proxy.cc
|
| +++ b/native_client_sdk/src/libraries/nacl_io/kernel_proxy.cc
|
| @@ -1014,7 +1014,6 @@ int KernelProxy::poll(struct pollfd *fds, nfds_t nfds, int timeout) {
|
| }
|
|
|
|
|
| -
|
| // Socket Functions
|
| int KernelProxy::accept(int fd, struct sockaddr* addr, socklen_t* len) {
|
| if (NULL == addr || NULL == len) {
|
| @@ -1111,10 +1110,10 @@ int KernelProxy::getsockname(int fd, struct sockaddr* addr, socklen_t* len) {
|
| }
|
|
|
| int KernelProxy::getsockopt(int fd,
|
| - int lvl,
|
| - int optname,
|
| - void* optval,
|
| - socklen_t* len) {
|
| + int lvl,
|
| + int optname,
|
| + void* optval,
|
| + socklen_t* len) {
|
| if (NULL == optval || NULL == len) {
|
| errno = EFAULT;
|
| return -1;
|
| @@ -1124,8 +1123,13 @@ int KernelProxy::getsockopt(int fd,
|
| if (AcquireSocketHandle(fd, &handle) == -1)
|
| return -1;
|
|
|
| - errno = EINVAL;
|
| - return -1;
|
| + Error err = handle->socket_node()->GetSockOpt(lvl, optname, optval, len);
|
| + if (err != 0) {
|
| + errno = err;
|
| + return -1;
|
| + }
|
| +
|
| + return 0;
|
| }
|
|
|
| int KernelProxy::listen(int fd, int backlog) {
|
| @@ -1289,8 +1293,13 @@ int KernelProxy::setsockopt(int fd,
|
| if (AcquireSocketHandle(fd, &handle) == -1)
|
| return -1;
|
|
|
| - errno = EINVAL;
|
| - return -1;
|
| + Error err = handle->socket_node()->SetSockOpt(lvl, optname, optval, len);
|
| + if (err != 0) {
|
| + errno = err;
|
| + return -1;
|
| + }
|
| +
|
| + return 0;
|
| }
|
|
|
| int KernelProxy::shutdown(int fd, int how) {
|
|
|