diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | include/enet/enet.h | 4 | ||||
-rw-r--r-- | unix.c | 13 | ||||
-rw-r--r-- | win32.c | 13 |
4 files changed, 32 insertions, 1 deletions
@@ -1,3 +1,6 @@ +* added enet_socket_get_option() and ENET_SOCKOPT_ERROR +* added enet_host_random_seed() platform stub + ENet 1.3.8 (June 2, 2013): * added enet_linked_version() for checking the linked version diff --git a/include/enet/enet.h b/include/enet/enet.h index c948be8..0298d84 100644 --- a/include/enet/enet.h +++ b/include/enet/enet.h @@ -60,7 +60,8 @@ typedef enum _ENetSocketOption ENET_SOCKOPT_SNDBUF = 4, ENET_SOCKOPT_REUSEADDR = 5, ENET_SOCKOPT_RCVTIMEO = 6, - ENET_SOCKOPT_SNDTIMEO = 7 + ENET_SOCKOPT_SNDTIMEO = 7, + ENET_SOCKOPT_ERROR = 8 } ENetSocketOption; typedef enum _ENetSocketShutdown @@ -491,6 +492,7 @@ ENET_API int enet_socket_send (ENetSocket, const ENetAddress *, const ENe ENET_API int enet_socket_receive (ENetSocket, ENetAddress *, ENetBuffer *, size_t); ENET_API int enet_socket_wait (ENetSocket, enet_uint32 *, enet_uint32); ENET_API int enet_socket_set_option (ENetSocket, ENetSocketOption, int); +ENET_API int enet_socket_get_option (ENetSocket, ENetSocketOption, int *); ENET_API int enet_socket_shutdown (ENetSocket, ENetSocketShutdown); ENET_API void enet_socket_destroy (ENetSocket); ENET_API int enet_socketset_select (ENetSocket, ENetSocketSet *, ENetSocketSet *, enet_uint32); @@ -272,6 +272,19 @@ enet_socket_set_option (ENetSocket socket, ENetSocketOption option, int value) } int +enet_socket_get_option (ENetSocket socket, ENetSocketOption option, int * value) +{ + int result = -1; + switch (option) + { + case ENET_SOCKOPT_ERROR: + result = setsockopt (socket, SOL_SOCKET, SO_ERROR, (char *) value, sizeof (int)); + break; + } + return result == -1 ? -1 : 0; +} + +int enet_socket_connect (ENetSocket socket, const ENetAddress * address) { struct sockaddr_in sin; @@ -202,6 +202,19 @@ enet_socket_set_option (ENetSocket socket, ENetSocketOption option, int value) } int +enet_socket_get_option (ENetSocket socket, ENetSocketOption option, int * value) +{ + int result = SOCKET_ERROR; + switch (option) + { + case ENET_SOCKOPT_ERROR: + result = setsockopt (socket, SOL_SOCKET, SO_ERROR, (char *) value, sizeof (int)); + break; + } + return result == SOCKET_ERROR ? -1 : 0; +} + +int enet_socket_connect (ENetSocket socket, const ENetAddress * address) { struct sockaddr_in sin; |