diff --git a/.gitignore b/.gitignore index 4464995d..960e006f 100644 --- a/.gitignore +++ b/.gitignore @@ -216,4 +216,5 @@ CMakeFiles/ CTestTestfile.cmake cmake_install.cmake install_manifest.txt -CMakeCache.txt \ No newline at end of file +CMakeCache.txt +bin/ \ No newline at end of file diff --git a/src/tls.c b/src/tls.c index 4da7e508..9d1eeae8 100644 --- a/src/tls.c +++ b/src/tls.c @@ -1450,15 +1450,19 @@ int tls_record_do_recv(uint8_t *record, size_t *recordlen, tls_socket_t sock) { len = 5; while (len) { - while ((r = tls_socket_recv(sock, record + 5 - len, len, 0)) < 0 && + while ((r = tls_socket_recv(sock, record + 5 - len, len, 0)) == -1 && errno == EAGAIN) { } + if (r == -1 && errno != EAGAIN) { + perror("tls_record_do_recv"); + error_print(); + return -1; + } if (r == 0) { perror("tls_record_do_recv"); error_print(); return 0; } - len -= r; } if (!tls_record_type_name(tls_record_type(record))) {