From fa6e6c4e0cc3ba1f1aeed5b710530e506ca50d6c Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 21 Apr 2017 15:43:40 -0500 Subject: [PATCH] FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets -- same fix for non-ssl sockets #resolve --- libs/sofia-sip/.update | 2 +- libs/sofia-sip/libsofia-sip-ua/tport/ws.c | 8 +++++++- src/mod/endpoints/mod_verto/ws.c | 12 +++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) 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)); //}