From ba61480df52e3d79349492a589a5bd999cd8ccbd Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 28 Apr 2016 17:29:11 +0300 Subject: [PATCH] extmod/modussl: SSL_OK from ssl_read() means "no user data so far". SSL_OK is numeric 0, and it's *not* an EOF. So, should keep reading. --- extmod/modussl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extmod/modussl.c b/extmod/modussl.c index b697bbdd66..51f4fead81 100644 --- a/extmod/modussl.c +++ b/extmod/modussl.c @@ -87,6 +87,11 @@ STATIC mp_uint_t socket_read(mp_obj_t o_in, void *buf, mp_uint_t size, int *errc while (o->bytes_left == 0) { mp_int_t r = ssl_read(o->ssl_sock, &o->buf); + if (r == SSL_OK) { + // SSL_OK from ssl_read() means "everything is ok, but there's + // not user data yet. So, we just keep reading. + continue; + } if (r < 0) { if (r == SSL_CLOSE_NOTIFY || r == SSL_ERROR_CONN_LOST) { // EOF