From 4a77478c13b35e311922d05f0866adce817a0d6a Mon Sep 17 00:00:00 2001 From: Li Beinan Date: Sat, 27 Jun 2020 20:51:04 +0800 Subject: idevice: Fix mistreatment of 0-byte sent cases Currently if 0 byte gets sent, it is treated as not-enough-data. This is wrong, because with TCP, 0-byte-sent usually means the receiver end is closed. We must set a new case for this and must not normalize the sent-bytes to 0 in general. --- src/idevice.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/idevice.c b/src/idevice.c index d6c1d06..f64570b 100644 --- a/src/idevice.c +++ b/src/idevice.c @@ -650,7 +650,10 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_connection_send(idevice_connection_ } debug_info("len %d, sent %d", len, sent); if (sent < len) { - *sent_bytes = 0; + *sent_bytes = sent; + if (sent == 0) { + return IDEVICE_E_UNKNOWN_ERROR; + } return IDEVICE_E_NOT_ENOUGH_DATA; } *sent_bytes = sent; -- cgit v1.1-32-gdbae