From 43c8acdfb2a031adada42850b541924ad6a708ee Mon Sep 17 00:00:00 2001 From: icex2 Date: Sat, 23 Jan 2021 20:45:50 +0100 Subject: [PATCH] prinet: Allow no response to request Different to empty response which is data size of response == 0. No response happens for uni-directional messages. This is reflected by not containing any content data in the http response. A response without any additional data still contains at least the size field (4 bytes) set to 0 --- src/main/pumpnet/lib/prinet.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/pumpnet/lib/prinet.c b/src/main/pumpnet/lib/prinet.c index fd7fa8d..dd62023 100644 --- a/src/main/pumpnet/lib/prinet.c +++ b/src/main/pumpnet/lib/prinet.c @@ -116,12 +116,11 @@ ssize_t pumpnet_lib_prinet_msg(const void* req_buffer, size_t req_size, void* re if (recv_size < 0) { free(req); free(resp); - return -1; + return -2; } - if (recv_size < sizeof(struct pumpnet_lib_prinet_resp)) { - log_error("Amount of data received too small: %d", recv_size); - + // No response because uni-directional message + if (recv_size == 0) { free(req); free(resp); return -1; @@ -133,7 +132,7 @@ ssize_t pumpnet_lib_prinet_msg(const void* req_buffer, size_t req_size, void* re free(req); free(resp); - return -1; + return -2; } memcpy(resp_buffer, resp->data, resp->size);