mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-16 08:49:01 +00:00
SO_REUSEADDR on windows
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10905 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
e7e94b1d75
commit
d7d540840a
@ -389,10 +389,20 @@ esl_status_t esl_execute(esl_handle_t *handle, const char *app, const char *arg,
|
|||||||
return esl_send_recv(handle, send_buf);
|
return esl_send_recv(handle, send_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int esl_socket_reuseaddr(esl_socket_t socket)
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
BOOL reuse_addr = TRUE;
|
||||||
|
return setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse_addr, sizeof(reuse_addr));
|
||||||
|
#else
|
||||||
|
int reuse_addr = 1;
|
||||||
|
return setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof(reuse_addr));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
esl_status_t esl_listen(const char *host, esl_port_t port, esl_listen_callback_t callback)
|
esl_status_t esl_listen(const char *host, esl_port_t port, esl_listen_callback_t callback)
|
||||||
{
|
{
|
||||||
esl_socket_t server_sock = ESL_SOCK_INVALID;
|
esl_socket_t server_sock = ESL_SOCK_INVALID;
|
||||||
int reuse_addr = 1;
|
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
esl_status_t status = ESL_SUCCESS;
|
esl_status_t status = ESL_SUCCESS;
|
||||||
|
|
||||||
@ -400,8 +410,8 @@ esl_status_t esl_listen(const char *host, esl_port_t port, esl_listen_callback_t
|
|||||||
return ESL_FAIL;
|
return ESL_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof(reuse_addr));
|
esl_socket_reuseaddr(server_sock);
|
||||||
|
|
||||||
memset(&addr, 0, sizeof(addr));
|
memset(&addr, 0, sizeof(addr));
|
||||||
addr.sin_family = AF_INET;
|
addr.sin_family = AF_INET;
|
||||||
addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user