summaryrefslogtreecommitdiffstats
path: root/src/syslog_relay.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/syslog_relay.c')
-rw-r--r--src/syslog_relay.c8
1 files changed, 6 insertions, 2 deletions
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 @@ static syslog_relay_error_t syslog_relay_error(service_error_t err)
55 return SYSLOG_RELAY_E_MUX_ERROR; 55 return SYSLOG_RELAY_E_MUX_ERROR;
56 case SERVICE_E_SSL_ERROR: 56 case SERVICE_E_SSL_ERROR:
57 return SYSLOG_RELAY_E_SSL_ERROR; 57 return SYSLOG_RELAY_E_SSL_ERROR;
58 case SERVICE_E_NOT_ENOUGH_DATA:
59 return SYSLOG_RELAY_E_NOT_ENOUGH_DATA;
60 case SERVICE_E_TIMEOUT:
61 return SYSLOG_RELAY_E_TIMEOUT;
58 default: 62 default:
59 break; 63 break;
60 } 64 }
@@ -129,7 +133,7 @@ LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_receive_with_timeout(sysl
129 } 133 }
130 134
131 res = syslog_relay_error(service_receive_with_timeout(client->parent, data, size, (uint32_t*)&bytes, timeout)); 135 res = syslog_relay_error(service_receive_with_timeout(client->parent, data, size, (uint32_t*)&bytes, timeout));
132 if (bytes <= 0) { 136 if (res != SYSLOG_RELAY_E_SUCCESS && res != SYSLOG_RELAY_E_TIMEOUT && res != SYSLOG_RELAY_E_NOT_ENOUGH_DATA) {
133 debug_info("Could not read data, error %d", res); 137 debug_info("Could not read data, error %d", res);
134 } 138 }
135 if (received) { 139 if (received) {
@@ -153,7 +157,7 @@ void *syslog_relay_worker(void *arg)
153 char c; 157 char c;
154 uint32_t bytes = 0; 158 uint32_t bytes = 0;
155 ret = syslog_relay_receive_with_timeout(srwt->client, &c, 1, &bytes, 100); 159 ret = syslog_relay_receive_with_timeout(srwt->client, &c, 1, &bytes, 100);
156 if ((bytes == 0) && (ret == SYSLOG_RELAY_E_SUCCESS)) { 160 if (ret == SYSLOG_RELAY_E_TIMEOUT || ret == SYSLOG_RELAY_E_NOT_ENOUGH_DATA || ((bytes == 0) && (ret == SYSLOG_RELAY_E_SUCCESS))) {
157 continue; 161 continue;
158 } else if (ret < 0) { 162 } else if (ret < 0) {
159 debug_info("Connection to syslog relay interrupted"); 163 debug_info("Connection to syslog relay interrupted");