diff options
author | Lee Salzman <[email protected]> | 2013-03-20 00:43:34 +0200 |
---|---|---|
committer | Lee Salzman <[email protected]> | 2013-03-20 00:43:34 +0200 |
commit | 726ff6bc6d0f596b8ff067f5ac10708d385767d3 (patch) | |
tree | ac1513268123d886149a40ff568f9443c424c173 /unix.c | |
parent | eb7126c66225d04aff084e19274e15a43db884d4 (diff) | |
download | enet-726ff6bc6d0f596b8ff067f5ac10708d385767d3.tar.gz enet-726ff6bc6d0f596b8ff067f5ac10708d385767d3.zip |
query the socket name if an explicit address binding is requested on host creation
Diffstat (limited to 'unix.c')
-rw-r--r-- | unix.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -194,6 +194,21 @@ enet_socket_bind (ENetSocket socket, const ENetAddress * address) sizeof (struct sockaddr_in)); } +int +enet_socket_get_address (ENetSocket socket, ENetAddress * address) +{ + struct sockaddr_in sin; + socklen_t sinLength = sizeof (struct sockaddr_in); + + if (getsockname (socket, (struct sockaddr *) & sin, & sinLength) == -1) + return -1; + + address -> host = (enet_uint32) sin.sin_addr.s_addr; + address -> port = ENET_NET_TO_HOST_16 (sin.sin_port); + + return 0; +} + int enet_socket_listen (ENetSocket socket, int backlog) { |