-Wed Sep 24 01:09:42 CDT 2014
+Thu Sep 25 21:43:53 CDT 2014
ssize_t r;
int err = 0;
+ wsh->x++;
+ if (wsh->x > 250) ms_sleep(1);
+
if (wsh->ssl) {
do {
r = SSL_read(wsh->ssl, data, bytes);
- ms_sleep(10);
-
if (r == -1) {
err = SSL_get_error(wsh->ssl, r);
-
+
if (!block && err == SSL_ERROR_WANT_READ) {
r = -2;
goto end;
}
+
+ if (block) ms_sleep(10);
}
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
do {
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);
- if (wsh->x >= 100) {
+ if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
r = -1;
}
ssize_t r;
int err = 0;
+ wsh->x++;
+ if (wsh->x > 250) ms_sleep(1);
+
if (wsh->ssl) {
do {
r = SSL_read(wsh->ssl, data, bytes);
- ms_sleep(10);
-
if (r == -1) {
err = SSL_get_error(wsh->ssl, r);
-
+
if (!block && err == SSL_ERROR_WANT_READ) {
r = -2;
goto end;
}
+
+ if (block) ms_sleep(10);
}
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
do {
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);
- if (wsh->x >= 100) {
+ if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
r = -1;
}