mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-16 08:49:01 +00:00
FS-6854 #resolve
This commit is contained in:
parent
221af936d8
commit
f7de058acd
@ -1 +1 @@
|
|||||||
Wed Sep 24 01:09:42 CDT 2014
|
Thu Sep 25 21:43:53 CDT 2014
|
||||||
|
@ -332,12 +332,13 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
ssize_t r;
|
ssize_t r;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
wsh->x++;
|
||||||
|
if (wsh->x > 250) ms_sleep(1);
|
||||||
|
|
||||||
if (wsh->ssl) {
|
if (wsh->ssl) {
|
||||||
do {
|
do {
|
||||||
r = SSL_read(wsh->ssl, data, bytes);
|
r = SSL_read(wsh->ssl, data, bytes);
|
||||||
|
|
||||||
ms_sleep(10);
|
|
||||||
|
|
||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
err = SSL_get_error(wsh->ssl, r);
|
err = SSL_get_error(wsh->ssl, r);
|
||||||
|
|
||||||
@ -345,6 +346,8 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
r = -2;
|
r = -2;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
||||||
@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
r = recv(wsh->sock, data, bytes, 0);
|
r = recv(wsh->sock, data, bytes, 0);
|
||||||
ms_sleep(10);
|
if (r == -1) {
|
||||||
|
if (!block && xp_is_blocking(xp_errno())) {
|
||||||
|
r = -2;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
|
}
|
||||||
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
||||||
|
|
||||||
if (wsh->x >= 100) {
|
if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
|
||||||
r = -1;
|
r = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,12 +332,13 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
ssize_t r;
|
ssize_t r;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
wsh->x++;
|
||||||
|
if (wsh->x > 250) ms_sleep(1);
|
||||||
|
|
||||||
if (wsh->ssl) {
|
if (wsh->ssl) {
|
||||||
do {
|
do {
|
||||||
r = SSL_read(wsh->ssl, data, bytes);
|
r = SSL_read(wsh->ssl, data, bytes);
|
||||||
|
|
||||||
ms_sleep(10);
|
|
||||||
|
|
||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
err = SSL_get_error(wsh->ssl, r);
|
err = SSL_get_error(wsh->ssl, r);
|
||||||
|
|
||||||
@ -345,6 +346,8 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
r = -2;
|
r = -2;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
||||||
@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
r = recv(wsh->sock, data, bytes, 0);
|
r = recv(wsh->sock, data, bytes, 0);
|
||||||
ms_sleep(10);
|
if (r == -1) {
|
||||||
|
if (!block && xp_is_blocking(xp_errno())) {
|
||||||
|
r = -2;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
|
}
|
||||||
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
||||||
|
|
||||||
if (wsh->x >= 100) {
|
if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
|
||||||
r = -1;
|
r = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user