aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--include/enet/enet.h4
-rw-r--r--unix.c13
-rw-r--r--win32.c13
4 files changed, 32 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c864f2f..c1572ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
diff --git a/unix.c b/unix.c
index 56b09d3..cfd212e 100644
--- a/unix.c
+++ b/unix.c
@@ -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;
diff --git a/win32.c b/win32.c
index 99b81aa..1950da9 100644
--- a/win32.c
+++ b/win32.c
@@ -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;