Index: native_client_sdk/src/libraries/nacl_io/mount_node_socket.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/mount_node_socket.cc b/native_client_sdk/src/libraries/nacl_io/mount_node_socket.cc |
index abaf55ba1e9e48ae0a89fa16d08b65d87ce62962..4aa780947081ba8e330f2a0d3081b767a5a20e56 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/mount_node_socket.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/mount_node_socket.cc |
@@ -204,6 +204,18 @@ Error MountNodeSocket::GetSockOpt(int lvl, |
int optname, |
void* optval, |
socklen_t* len) { |
+ if (lvl != SOL_SOCKET) |
+ return EINVAL; |
+ |
+ switch (optname) { |
+ case SO_ERROR: |
+ if (*len < sizeof(int)) |
binji
2013/09/30 16:37:48
http://pubs.opengroup.org/onlinepubs/009695399/fun
Sam Clegg
2013/09/30 17:33:25
Done.
|
+ return EINVAL; |
+ *static_cast<int*>(optval) = 0; |
binji
2013/09/30 16:37:48
always 0? This probably needs to be a virtual func
Sam Clegg
2013/09/30 17:33:25
Done.
|
+ *len = sizeof(int); |
+ return 0; |
+ } |
+ |
return EINVAL; |
} |
@@ -372,4 +384,4 @@ Error MountNodeSocket::GetSockName(struct sockaddr* addr, socklen_t* len) { |
} // namespace nacl_io |
-#endif // PROVIDES_SOCKET_API |
+#endif // PROVIDES_SOCKET_API |