summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/idevice.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/idevice.c b/src/idevice.c
index ec426e5..3ed2e9f 100644
--- a/src/idevice.c
+++ b/src/idevice.c
@@ -383,7 +383,15 @@ idevice_error_t idevice_connection_receive_timeout(idevice_connection_t connecti
383 383
384 if (connection->ssl_data) { 384 if (connection->ssl_data) {
385#ifdef HAVE_OPENSSL 385#ifdef HAVE_OPENSSL
386 int received = SSL_read(connection->ssl_data->session, (void*)data, (int)len); 386 uint32_t received = 0;
387 while (received < len) {
388 int r = SSL_read(connection->ssl_data->session, (void*)((char*)(data+received)), (int)len-received);
389 if (r > 0) {
390 received += r;
391 } else {
392 break;
393 }
394 }
387 debug_info("SSL_read %d, received %d", len, received); 395 debug_info("SSL_read %d, received %d", len, received);
388#else 396#else
389 ssize_t received = gnutls_record_recv(connection->ssl_data->session, (void*)data, (size_t)len); 397 ssize_t received = gnutls_record_recv(connection->ssl_data->session, (void*)data, (size_t)len);