From e348420a4fd5e3f2908011966455b1870f28184c Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 11 Apr 2018 14:34:40 +0900 Subject: [PATCH] ecore ipc - fix send to skip data payload if null/0 conversion to efl.nmet didnt deal with null/0 zised payloads properly and tried to send them, resulting in lots of ERR complaints which were not errors. fix that to not try and send such empty payloads @fix --- src/lib/ecore_ipc/ecore_ipc.c | 59 +++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c index 02fdb28..762e57a 100644 --- a/src/lib/ecore_ipc/ecore_ipc.c +++ b/src/lib/ecore_ipc/ecore_ipc.c @@ -990,20 +990,23 @@ ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, int minor, int ref, int return 0; } - slice.mem = data; - slice.len = size; - err = efl_io_writer_write(svr->dialer.input, &slice, NULL); - if (err) - { - ERR("could not write queue=%p %zd bytes: %s", - svr->dialer.input, slice.len, eina_error_msg_get(err)); - return 0; - } - if (slice.len < (size_t)size) + if ((data) && (size > 0)) { - ERR("only wrote %zd of %d bytes to queue %p", - slice.len, size, svr->dialer.input); - return 0; + slice.mem = data; + slice.len = size; + err = efl_io_writer_write(svr->dialer.input, &slice, NULL); + if (err) + { + ERR("could not write queue=%p %zd bytes: %s", + svr->dialer.input, slice.len, eina_error_msg_get(err)); + return 0; + } + if (slice.len < (size_t)size) + { + ERR("only wrote %zd of %d bytes to queue %p", + slice.len, size, svr->dialer.input); + return 0; + } } return s + size; @@ -1209,21 +1212,23 @@ ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, int minor, int ref, int r slice.len, s, cl->socket.input); return 0; } - - slice.mem = data; - slice.len = size; - err = efl_io_writer_write(cl->socket.input, &slice, NULL); - if (err) - { - ERR("could not write queue=%p %zd bytes: %s", - cl->socket.input, slice.len, eina_error_msg_get(err)); - return 0; - } - if (slice.len < (size_t)size) + if ((data) && (size > 0)) { - ERR("only wrote %zd of %d bytes to queue %p", - slice.len, size, cl->socket.input); - return 0; + slice.mem = data; + slice.len = size; + err = efl_io_writer_write(cl->socket.input, &slice, NULL); + if (err) + { + ERR("could not write queue=%p %zd bytes: %s", + cl->socket.input, slice.len, eina_error_msg_get(err)); + return 0; + } + if (slice.len < (size_t)size) + { + ERR("only wrote %zd of %d bytes to queue %p", + slice.len, size, cl->socket.input); + return 0; + } } return s + size; -- 2.7.4