From: Anthony Minessale Date: Fri, 21 Apr 2017 20:43:40 +0000 (-0500) Subject: FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets -- same fix for non... X-Git-Tag: v1.8.0~576 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c92222354119d2c6e420e0222dc2b1784222787a;p=thirdparty%2Ffreeswitch.git FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets -- same fix for non-ssl sockets #resolve --- 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));