syslog_relay: Fix timeout issue introduced with recent libusbmuxd commit ca245709
diff --git a/include/libimobiledevice/syslog_relay.h b/include/libimobiledevice/syslog_relay.h
index 0080b54..ea7b649 100644
--- a/include/libimobiledevice/syslog_relay.h
+++ b/include/libimobiledevice/syslog_relay.h
@@ -34,11 +34,13 @@
 
 /** Error Codes */
 typedef enum {
-	SYSLOG_RELAY_E_SUCCESS       =  0,
-	SYSLOG_RELAY_E_INVALID_ARG   = -1,
-	SYSLOG_RELAY_E_MUX_ERROR     = -2,
-	SYSLOG_RELAY_E_SSL_ERROR     = -3,
-	SYSLOG_RELAY_E_UNKNOWN_ERROR = -256
+	SYSLOG_RELAY_E_SUCCESS         =  0,
+	SYSLOG_RELAY_E_INVALID_ARG     = -1,
+	SYSLOG_RELAY_E_MUX_ERROR       = -2,
+	SYSLOG_RELAY_E_SSL_ERROR       = -3,
+	SYSLOG_RELAY_E_NOT_ENOUGH_DATA = -4,
+	SYSLOG_RELAY_E_TIMEOUT         = -5,
+	SYSLOG_RELAY_E_UNKNOWN_ERROR   = -256
 } syslog_relay_error_t;
 
 typedef struct syslog_relay_client_private syslog_relay_client_private;
diff --git a/src/syslog_relay.c b/src/syslog_relay.c
index 3be84e0..0d71392 100644
--- a/src/syslog_relay.c
+++ b/src/syslog_relay.c
@@ -55,6 +55,10 @@
 			return SYSLOG_RELAY_E_MUX_ERROR;
 		case SERVICE_E_SSL_ERROR:
 			return SYSLOG_RELAY_E_SSL_ERROR;
+		case SERVICE_E_NOT_ENOUGH_DATA:
+			return SYSLOG_RELAY_E_NOT_ENOUGH_DATA;
+		case SERVICE_E_TIMEOUT:
+			return SYSLOG_RELAY_E_TIMEOUT;
 		default:
 			break;
 	}
@@ -129,7 +133,7 @@
 	}
 
 	res = syslog_relay_error(service_receive_with_timeout(client->parent, data, size, (uint32_t*)&bytes, timeout));
-	if (bytes <= 0) {
+	if (res != SYSLOG_RELAY_E_SUCCESS && res != SYSLOG_RELAY_E_TIMEOUT && res != SYSLOG_RELAY_E_NOT_ENOUGH_DATA) {
 		debug_info("Could not read data, error %d", res);
 	}
 	if (received) {
@@ -153,7 +157,7 @@
 		char c;
 		uint32_t bytes = 0;
 		ret = syslog_relay_receive_with_timeout(srwt->client, &c, 1, &bytes, 100);
-		if ((bytes == 0) && (ret == SYSLOG_RELAY_E_SUCCESS)) {
+		if (ret == SYSLOG_RELAY_E_TIMEOUT || ret == SYSLOG_RELAY_E_NOT_ENOUGH_DATA || ((bytes == 0) && (ret == SYSLOG_RELAY_E_SUCCESS))) {
 			continue;
 		} else if (ret < 0) {
 			debug_info("Connection to syslog relay interrupted");