diff options
Diffstat (limited to 'src/core/gnunet-service-core_clients.c')
-rw-r--r-- | src/core/gnunet-service-core_clients.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/gnunet-service-core_clients.c b/src/core/gnunet-service-core_clients.c index 838fa42db..6caacb002 100644 --- a/src/core/gnunet-service-core_clients.c +++ b/src/core/gnunet-service-core_clients.c | |||
@@ -216,13 +216,15 @@ send_to_all_clients (const struct GNUNET_MessageHeader *msg, | |||
216 | 216 | ||
217 | for (c = client_head; c != NULL; c = c->next) | 217 | for (c = client_head; c != NULL; c = c->next) |
218 | { | 218 | { |
219 | if (! ( (0 != (c->options & options)) || | 219 | if ( (0 == (options & GNUNET_CORE_OPTION_SEND_FULL_INBOUND)) && |
220 | ( (0 != (options & GNUNET_CORE_OPTION_SEND_FULL_INBOUND)) && | 220 | (GNUNET_YES == type_match (type, c)) ) |
221 | (GNUNET_YES == type_match (type, c)) ) ) ) | 221 | continue; /* not the full message, but we'd like the full one! */ |
222 | continue; /* skip */ | 222 | if ( (0 == (c->options & options)) && |
223 | (GNUNET_YES != type_match (type, c)) ) | ||
224 | continue; /* neither options nor type match permit the message */ | ||
223 | #if DEBUG_CORE | 225 | #if DEBUG_CORE |
224 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 226 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
225 | "Sending message to all clients interested in messages of type %u.\n", | 227 | "Sending message to client interested in messages of type %u.\n", |
226 | (unsigned int) type); | 228 | (unsigned int) type); |
227 | #endif | 229 | #endif |
228 | send_to_client (c, msg, can_drop); | 230 | send_to_client (c, msg, can_drop); |