diff --git a/libs/libks/src/kws.c b/libs/libks/src/kws.c index a9c5141d72..8994a67489 100644 --- a/libs/libks/src/kws.c +++ b/libs/libks/src/kws.c @@ -482,7 +482,13 @@ KS_DECLARE(ks_ssize_t) kws_raw_write(kws_t *kws, void *data, ks_size_t bytes) ks_sleep_ms(ms); } - } while (--sanity > 0 && ((r == -1 && ks_errno_is_blocking(ks_errno())) || (kws->block && wrote < bytes))); + if (r == -1) { + if (!ks_errno_is_blocking(ks_errno())) { + break; + } + } + + } while (--sanity > 0 && kws->block && wrote < bytes); //if (r<0) { //printf("wRITE FAIL: %s\n", strerror(errno)); diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index c3cfd79ba3..cafd8c857c 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Thu Apr 6 17:08:51 CDT 2017 +Fri Apr 21 15:42:59 CDT 2017 diff --git a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c index 8d3db0a73e..774c694625 100644 --- a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c +++ b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c @@ -476,7 +476,13 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes) ms_sleep(ms); } - } while (--sanity > 0 && ((r == -1 && xp_is_blocking(xp_errno())) || (wsh->block && wrote < bytes))); + if (r == -1) { + if (!ks_errno_is_blocking(ks_errno())) { + break; + } + } + + } while (--sanity > 0 && kws->block && wrote < bytes); //if (r<0) { //printf("wRITE FAIL: %s\n", strerror(errno)); diff --git a/src/mod/endpoints/mod_verto/ws.c b/src/mod/endpoints/mod_verto/ws.c index 8d3db0a73e..774c694625 100644 --- a/src/mod/endpoints/mod_verto/ws.c +++ b/src/mod/endpoints/mod_verto/ws.c @@ -476,7 +476,13 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes) ms_sleep(ms); } - } while (--sanity > 0 && ((r == -1 && xp_is_blocking(xp_errno())) || (wsh->block && wrote < bytes))); + if (r == -1) { + if (!ks_errno_is_blocking(ks_errno())) { + break; + } + } + + } while (--sanity > 0 && kws->block && wrote < bytes); //if (r<0) { //printf("wRITE FAIL: %s\n", strerror(errno));