diff options
author | TheJackiMonster <thejackimonster@gmail.com> | 2021-07-24 23:44:11 +0200 |
---|---|---|
committer | TheJackiMonster <thejackimonster@gmail.com> | 2021-07-24 23:44:11 +0200 |
commit | aaeebebf670a2019a7ac8accb40e23cd923d396b (patch) | |
tree | 972a6033639c3b3f040da1b987c308e82e9e5ce6 /src/messenger | |
parent | d63771f255057b27485c1fc96a0713d64d0ae1af (diff) | |
download | gnunet-aaeebebf670a2019a7ac8accb40e23cd923d396b.tar.gz gnunet-aaeebebf670a2019a7ac8accb40e23cd923d396b.zip |
-added sent flag to messenger service
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat (limited to 'src/messenger')
-rw-r--r-- | src/messenger/gnunet-messenger.c | 7 | ||||
-rw-r--r-- | src/messenger/gnunet-service-messenger_handle.c | 32 |
2 files changed, 35 insertions, 4 deletions
diff --git a/src/messenger/gnunet-messenger.c b/src/messenger/gnunet-messenger.c index 094ae398d..28fa4b147 100644 --- a/src/messenger/gnunet-messenger.c +++ b/src/messenger/gnunet-messenger.c | |||
@@ -80,7 +80,12 @@ on_message (void *cls, struct GNUNET_MESSENGER_Room *room, const struct GNUNET_M | |||
80 | } | 80 | } |
81 | case GNUNET_MESSENGER_KIND_TEXT: | 81 | case GNUNET_MESSENGER_KIND_TEXT: |
82 | { | 82 | { |
83 | printf ("* '%s' says: \"%s\"\n", sender_name, message->body.text.text); | 83 | if (flags & GNUNET_MESSENGER_FLAG_SENT) |
84 | printf (">"); | ||
85 | else | ||
86 | printf ("<"); | ||
87 | |||
88 | printf (" '%s' says: \"%s\"\n", sender_name, message->body.text.text); | ||
84 | break; | 89 | break; |
85 | } | 90 | } |
86 | default: | 91 | default: |
diff --git a/src/messenger/gnunet-service-messenger_handle.c b/src/messenger/gnunet-service-messenger_handle.c index 4d2318d62..d7007dbf6 100644 --- a/src/messenger/gnunet-service-messenger_handle.c +++ b/src/messenger/gnunet-service-messenger_handle.c | |||
@@ -474,6 +474,28 @@ get_next_member_session_contect(const struct GNUNET_MESSENGER_MemberSession *ses | |||
474 | return get_member_session_context(session); | 474 | return get_member_session_context(session); |
475 | } | 475 | } |
476 | 476 | ||
477 | static const struct GNUNET_MESSENGER_MemberSession* | ||
478 | get_handle_member_session (struct GNUNET_MESSENGER_SrvHandle *handle, const struct GNUNET_HashCode *key) | ||
479 | { | ||
480 | GNUNET_assert((handle) && (key) && (handle->service)); | ||
481 | |||
482 | const struct GNUNET_ShortHashCode *id = get_handle_member_id(handle, key); | ||
483 | struct GNUNET_MESSENGER_SrvRoom *room = get_service_room(handle->service, key); | ||
484 | |||
485 | if ((!id) || (!room)) | ||
486 | return NULL; | ||
487 | |||
488 | struct GNUNET_MESSENGER_MemberStore *store = get_room_member_store(room); | ||
489 | struct GNUNET_MESSENGER_Member *member = get_store_member(store, id); | ||
490 | |||
491 | const struct GNUNET_MESSENGER_Ego *ego = get_handle_ego(handle); | ||
492 | |||
493 | if (!ego) | ||
494 | return NULL; | ||
495 | |||
496 | return get_member_session(member, &(ego->pub)); | ||
497 | } | ||
498 | |||
477 | void | 499 | void |
478 | notify_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct GNUNET_HashCode *key, | 500 | notify_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct GNUNET_HashCode *key, |
479 | const struct GNUNET_MESSENGER_MemberSession *session, | 501 | const struct GNUNET_MESSENGER_MemberSession *session, |
@@ -523,9 +545,13 @@ notify_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct G | |||
523 | GNUNET_memcpy(&(msg->context), context, sizeof(msg->context)); | 545 | GNUNET_memcpy(&(msg->context), context, sizeof(msg->context)); |
524 | GNUNET_memcpy(&(msg->hash), hash, sizeof(msg->hash)); | 546 | GNUNET_memcpy(&(msg->hash), hash, sizeof(msg->hash)); |
525 | 547 | ||
526 | msg->flags = (uint32_t) ( | 548 | msg->flags = (uint32_t) GNUNET_MESSENGER_FLAG_NONE; |
527 | private_message? GNUNET_MESSENGER_FLAG_PRIVATE : GNUNET_MESSENGER_FLAG_NONE | 549 | |
528 | ); | 550 | if (get_handle_member_session(handle, key) == session) |
551 | msg->flags |= (uint32_t) GNUNET_MESSENGER_FLAG_SENT; | ||
552 | |||
553 | if (private_message) | ||
554 | msg->flags |= (uint32_t) GNUNET_MESSENGER_FLAG_PRIVATE; | ||
529 | 555 | ||
530 | char *buffer = ((char*) msg) + sizeof(*msg); | 556 | char *buffer = ((char*) msg) + sizeof(*msg); |
531 | encode_message (message, length, buffer, GNUNET_YES); | 557 | encode_message (message, length, buffer, GNUNET_YES); |