From 2a8ec58c153d27eb0c4a33fe4e7bd8bdcbbd7fa7 Mon Sep 17 00:00:00 2001 From: Aaron Jones Date: Fri, 9 Sep 2016 01:41:30 +0000 Subject: [PATCH] MbedTLS: Treat 0 bytes read/written to socket properly At the moment, if a link quits in just the right (wrong [1]) way, the quit reason will resemble: <-- foo (~bar@baz) has quit (Read error: (-0x0) ) This should resolve that. [1] Peers should send a close_notify alert before abruptly shutting down their socket. This will result in a sane quit message: <-- foo (~bar@baz) has quit (Read error: (-0x7880) SSL - The peer notified us that the connection is going to be closed) [ci skip] --- libratbox/src/mbedtls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libratbox/src/mbedtls.c b/libratbox/src/mbedtls.c index e059672f..71ae23b7 100644 --- a/libratbox/src/mbedtls.c +++ b/libratbox/src/mbedtls.c @@ -634,7 +634,7 @@ rb_ssl_read(rb_fde_t *const F, void *const buf, size_t count) ssize_t ret = (ssize_t) mbedtls_ssl_read(SSL_P(F), buf, count); - if(ret > 0) + if(ret >= 0) return ret; switch(ret) @@ -660,7 +660,7 @@ rb_ssl_write(rb_fde_t *const F, const void *const buf, size_t count) ssize_t ret = (ssize_t) mbedtls_ssl_write(SSL_P(F), buf, count); - if(ret > 0) + if(ret >= 0) return ret; switch(ret)