From 90da341a70794bc46ca6c42958eb1d00769ee5ff Mon Sep 17 00:00:00 2001 From: Mathieu Rene Date: Tue, 20 Jul 2010 17:18:43 -0400 Subject: [PATCH] fix git screwup --- libs/esl/src/esl.c | 33 +++++++++++++-------------------- libs/esl/src/include/esl.h | 7 ++++--- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/libs/esl/src/esl.c b/libs/esl/src/esl.c index 979c21696f..3acab01935 100644 --- a/libs/esl/src/esl.c +++ b/libs/esl/src/esl.c @@ -607,15 +607,14 @@ ESL_DECLARE(esl_status_t) esl_listen(const char *host, esl_port_t port, esl_list } -ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *host, esl_port_t port, const char *user, const char *password, long timeout) +ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *host, esl_port_t port, const char *user, const char *password, uint32_t timeout) { char sendbuf[256]; int rval = 0; const char *hval; struct addrinfo hints = { 0 }, *result; -#ifndef WIN32 int fd_flags; -#else +#ifdef WIN32 WORD wVersionRequested = MAKEWORD(2, 0); WSADATA wsaData; int err = WSAStartup(wVersionRequested, &wsaData); @@ -650,7 +649,7 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char * handle->sockaddr.sin_family = AF_INET; handle->sockaddr.sin_port = htons(port); - if (timeout != -1) { + if (timeout) { #ifdef WIN32 u_long arg = 1; if (ioctlsocket(handle->sock, FIONBIO, &arg) == SOCKET_ERROR) { @@ -668,22 +667,13 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char * rval = connect(handle->sock, (struct sockaddr*)&handle->sockaddr, sizeof(handle->sockaddr)); - if (timeout != -1) { + if (timeout) { fd_set wfds; - struct timeval tv; + struct timeval tv = { timeout / 1000, (timeout % 1000) * 1000 }; int r; - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; FD_ZERO(&wfds); -#ifdef WIN32 -#pragma warning( push ) -#pragma warning( disable : 4127 ) - FD_SET(handle->sock, &wfds); -#pragma warning( pop ) -#else FD_SET(handle->sock, &wfds); -#endif r = select(handle->sock + 1, NULL, &wfds, NULL, &tv); @@ -723,7 +713,7 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char * handle->connected = 1; - if (esl_recv(handle)) { + if (esl_recv_timed(handle, timeout)) { snprintf(handle->err, sizeof(handle->err), "Connection Error"); goto fail; } @@ -744,7 +734,7 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char * esl_send(handle, sendbuf); - if (esl_recv(handle)) { + if (esl_recv_timed(handle, timeout)) { snprintf(handle->err, sizeof(handle->err), "Authentication Error"); goto fail; } @@ -810,6 +800,10 @@ ESL_DECLARE(esl_status_t) esl_recv_event_timed(esl_handle_t *handle, uint32_t ms struct timeval tv = { 0 }; int max, activity; esl_status_t status = ESL_SUCCESS; + + if (!ms) { + return esl_recv_event(handle, check_q, save_event); + } if (!handle || !handle->connected || handle->sock == ESL_SOCK_INVALID) { return ESL_FAIL; @@ -826,7 +820,6 @@ ESL_DECLARE(esl_status_t) esl_recv_event_timed(esl_handle_t *handle, uint32_t ms tv.tv_usec = ms * 1000; - FD_ZERO(&rfds); FD_ZERO(&efds); @@ -1152,7 +1145,7 @@ ESL_DECLARE(esl_status_t) esl_send(esl_handle_t *handle, const char *cmd) } -ESL_DECLARE(esl_status_t) esl_send_recv(esl_handle_t *handle, const char *cmd) +ESL_DECLARE(esl_status_t) esl_send_recv_timed(esl_handle_t *handle, const char *cmd, uint32_t ms) { const char *hval; esl_status_t status; @@ -1182,7 +1175,7 @@ ESL_DECLARE(esl_status_t) esl_send_recv(esl_handle_t *handle, const char *cmd) recv: - status = esl_recv_event(handle, 0, &handle->last_sr_event); + status = esl_recv_event_timed(handle, ms, 0, &handle->last_sr_event); if (handle->last_sr_event) { char *ct = esl_event_get_header(handle->last_sr_event,"content-type"); diff --git a/libs/esl/src/include/esl.h b/libs/esl/src/include/esl.h index d87f83f26b..9f28c3d925 100644 --- a/libs/esl/src/include/esl.h +++ b/libs/esl/src/include/esl.h @@ -389,8 +389,8 @@ ESL_DECLARE(esl_status_t) esl_sendevent(esl_handle_t *handle, esl_event_t *event \param password FreeSWITCH server password \param timeout Connection timeout, in miliseconds */ -ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *host, esl_port_t port, const char *user, const char *password, long timeout); -#define esl_connect(_handle, _host, _port, _user, _password) esl_connect_timeout(_handle, _host, _port, _user, _password, -1) +ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *host, esl_port_t port, const char *user, const char *password, uint32_t timeout); +#define esl_connect(_handle, _host, _port, _user, _password) esl_connect_timeout(_handle, _host, _port, _user, _password, 0) /*! \brief Disconnect a handle @@ -423,7 +423,8 @@ ESL_DECLARE(esl_status_t) esl_recv_event_timed(esl_handle_t *handle, uint32_t ms \param handle Handle to be used \param cmd Raw command to send */ -ESL_DECLARE(esl_status_t) esl_send_recv(esl_handle_t *handle, const char *cmd); +ESL_DECLARE(esl_status_t) esl_send_recv_timed(esl_handle_t *handle, const char *cmd, uint32_t ms); +#define esl_send_recv(_handle, _cmd) esl_send_recv_timed(_handle, _cmd, 0) /*! \brief Applies a filter to received events \param handle Handle to apply the filter to