diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 49ea97e571..480587cae3 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Thu Apr 6 17:08:19 CDT 2017 +Thu Jun 1 14:43:20 EDT 2017 diff --git a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c index d7dde7cec0..4082038367 100644 --- a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c +++ b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c @@ -455,7 +455,13 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes) ms_sleep(1); } - } while (--sanity > 0 && ((r == -1 && xp_is_blocking(xp_errno())) || (wsh->block && wrote < bytes))); + if (r == -1) { + if (!xp_is_blocking(xp_errno())) { + break; + } + } + + } while (--sanity > 0 && wsh->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 953770310c..b934383c3c 100644 --- a/src/mod/endpoints/mod_verto/ws.c +++ b/src/mod/endpoints/mod_verto/ws.c @@ -454,9 +454,15 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes) if (sanity < 2000) { ms_sleep(1); } - - } while (--sanity > 0 && ((r == -1 && xp_is_blocking(xp_errno())) || (wsh->block && wrote < bytes))); - + + if (r == -1) { + if (!xp_is_blocking(xp_errno())) { + break; + } + } + + } while (--sanity > 0 && wsh->block && wrote < bytes); + //if (r<0) { //printf("wRITE FAIL: %s\n", strerror(errno)); //}