From 146e94e18ae9166b2894916878e3c85136d6216e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 31 Oct 2009 20:43:41 +0000 Subject: [PATCH] tolerate empty message --- src/core/core_api.c | 6 ++++++ src/core/gnunet-service-core.c | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/core/core_api.c b/src/core/core_api.c index a6d729245..1a74eb7d0 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c @@ -1054,6 +1054,12 @@ produce_send (void *cls, size_t size, void *buf) trigger_next_request (h); GNUNET_assert (size >= sizeof (struct SendMessage)); dt = notify (notify_cls, size - sizeof (struct SendMessage), &sm[1]); + if (0 == dt) + { + /* client decided to send nothing! */ + return 0; + } + GNUNET_assert (dt >= sizeof (struct GNUNET_MessageHeader)); sm->header.size = htons (dt + sizeof (struct SendMessage)); GNUNET_assert (dt + sizeof (struct SendMessage) < size); return dt + sizeof (struct SendMessage); diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index d950237cd..1d272b873 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c @@ -1750,6 +1750,10 @@ process_plaintext_neighbour_queue (struct Neighbour *n) /** * Handle CORE_SEND request. + * + * @param cls unused + * @param client the client issuing the request + * @param message the "struct SendMessage" */ static void handle_client_send (void *cls, @@ -1796,6 +1800,10 @@ send_connect_continuation (void *cls, size_t size, void *buf) /** * Handle CORE_SEND request. + * + * @param cls unused + * @param client the client issuing the request + * @param message the "struct SendMessage" */ static void handle_client_send (void *cls, -- 2.25.1