diff options
Diffstat (limited to 'src/gnunet_chat_handle_intern.c')
-rw-r--r-- | src/gnunet_chat_handle_intern.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gnunet_chat_handle_intern.c b/src/gnunet_chat_handle_intern.c index a026617..04afcbc 100644 --- a/src/gnunet_chat_handle_intern.c +++ b/src/gnunet_chat_handle_intern.c | |||
@@ -374,7 +374,7 @@ intern_provide_contact_for_member(struct GNUNET_CHAT_Handle *handle, | |||
374 | GNUNET_assert((handle) && (handle->contacts)); | 374 | GNUNET_assert((handle) && (handle->contacts)); |
375 | 375 | ||
376 | if (!member) | 376 | if (!member) |
377 | return GNUNET_OK; | 377 | return GNUNET_SYSERR; |
378 | 378 | ||
379 | struct GNUNET_ShortHashCode shorthash; | 379 | struct GNUNET_ShortHashCode shorthash; |
380 | util_shorthash_from_member(member, &shorthash); | 380 | util_shorthash_from_member(member, &shorthash); |
@@ -584,12 +584,15 @@ on_handle_message (void *cls, | |||
584 | (hash)); | 584 | (hash)); |
585 | 585 | ||
586 | if ((handle->destruction) || | 586 | if ((handle->destruction) || |
587 | (GNUNET_OK != handle_request_context_by_room(handle, room)) || | 587 | (GNUNET_OK != handle_request_context_by_room(handle, room))) |
588 | (GNUNET_OK != intern_provide_contact_for_member(handle, sender, NULL))) | ||
589 | return; | 588 | return; |
590 | 589 | ||
591 | GNUNET_MESSENGER_get_message(room, &(msg->header.previous)); | 590 | GNUNET_MESSENGER_get_message(room, &(msg->header.previous)); |
592 | 591 | ||
592 | if ((GNUNET_CHAT_KIND_UNKNOWN == util_message_kind_from_kind(msg->header.kind)) || | ||
593 | (GNUNET_OK != intern_provide_contact_for_member(handle, sender, NULL))) | ||
594 | return; | ||
595 | |||
593 | struct GNUNET_CHAT_Context *context = GNUNET_CONTAINER_multihashmap_get( | 596 | struct GNUNET_CHAT_Context *context = GNUNET_CONTAINER_multihashmap_get( |
594 | handle->contexts, GNUNET_MESSENGER_room_get_key(room) | 597 | handle->contexts, GNUNET_MESSENGER_room_get_key(room) |
595 | ); | 598 | ); |