]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 6 Apr 2017 22:06:35 +0000 (17:06 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 6 Apr 2017 22:08:32 +0000 (17:08 -0500)
libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/tport/ws.c
src/mod/endpoints/mod_verto/ws.c

index e24a7c97f1edd4b67991c8b651e2bc88746780e5..49ea97e5711e7777c07d6677c9922e77e6004524 100644 (file)
@@ -1 +1 @@
-Mon Mar 20 17:03:26 CDT 2017
+Thu Apr  6 17:08:19 CDT 2017
index 71b862ac62df2656df826ebe5fdded08078dfb4f..fc6174efb6811803600bff622f4ab18eb0a6fb7f 100644 (file)
@@ -430,10 +430,12 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes)
                        }
 
                        if (r == -1) {
-                               ssl_err = SSL_get_error(wsh->ssl, r);
+                               if ((ssl_err = SSL_get_error(wsh->ssl, r)) != SSL_ERROR_WANT_WRITE) {
+                                       break;
+                               }
                        }
 
-               } while (--sanity > 0 && ((r == -1 && ssl_err == SSL_ERROR_WANT_WRITE) || (wsh->block && wrote < bytes)));
+               } while (--sanity > 0 && wsh->block && wrote < bytes);
 
                if (ssl_err) {
                        r = ssl_err * -1;
index 018648884a2ce00ebe7aff9eb29520fc9e6e9ff1..bb64e7f8aad34beb57a9a53f97be0523d7dcc659 100644 (file)
@@ -430,10 +430,12 @@ ssize_t ws_raw_write(wsh_t *wsh, void *data, size_t bytes)
                        }
 
                        if (r == -1) {
-                               ssl_err = SSL_get_error(wsh->ssl, r);
+                               if ((ssl_err = SSL_get_error(wsh->ssl, r)) != SSL_ERROR_WANT_WRITE) {
+                                       break;
+                               }
                        }
 
-               } while (--sanity > 0 && ((r == -1 && ssl_err == SSL_ERROR_WANT_WRITE) || (wsh->block && wrote < bytes)));
+               } while (--sanity > 0 && wsh->block && wrote < bytes);
 
                if (ssl_err) {
                        r = ssl_err * -1;