gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: -added sent flag to messenger service


From: gnunet
Subject: [gnunet] branch master updated: -added sent flag to messenger service
Date: Sat, 24 Jul 2021 23:47:36 +0200

This is an automated email from the git hooks/post-receive script.

thejackimonster pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new aaeebebf6 -added sent flag to messenger service
aaeebebf6 is described below

commit aaeebebf670a2019a7ac8accb40e23cd923d396b
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Sat Jul 24 23:44:11 2021 +0200

    -added sent flag to messenger service
    
    Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
 src/include/gnunet_messenger_service.h          |  8 ++++++-
 src/messenger/gnunet-messenger.c                |  7 +++++-
 src/messenger/gnunet-service-messenger_handle.c | 32 ++++++++++++++++++++++---
 3 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/src/include/gnunet_messenger_service.h 
b/src/include/gnunet_messenger_service.h
index ecd856eb9..ff5a91409 100644
--- a/src/include/gnunet_messenger_service.h
+++ b/src/include/gnunet_messenger_service.h
@@ -499,6 +499,7 @@ struct GNUNET_MESSENGER_Message
 
 /**
  * Enum for the different supported flags used by message handling
+ * Compatible flags can be OR'ed together.
  */
 enum GNUNET_MESSENGER_MessageFlags
 {
@@ -507,10 +508,15 @@ enum GNUNET_MESSENGER_MessageFlags
    */
   GNUNET_MESSENGER_FLAG_NONE = 0,
 
+  /**
+   * The sent flag. The flag indicates that the message was sent by the client.
+   */
+  GNUNET_MESSENGER_FLAG_SENT = 1,
+
   /**
    * The private flag. The flag indicates that the message was privately 
encrypted.
    */
-  GNUNET_MESSENGER_FLAG_PRIVATE = 1,
+  GNUNET_MESSENGER_FLAG_PRIVATE = 2,
 };
 
 /**
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
     }
   case GNUNET_MESSENGER_KIND_TEXT:
     {
-      printf ("* '%s' says: \"%s\"\n", sender_name, message->body.text.text);
+      if (flags & GNUNET_MESSENGER_FLAG_SENT)
+        printf (">");
+      else
+        printf ("<");
+
+      printf (" '%s' says: \"%s\"\n", sender_name, message->body.text.text);
       break;
     }
   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
     return get_member_session_context(session);
 }
 
+static const struct GNUNET_MESSENGER_MemberSession*
+get_handle_member_session (struct GNUNET_MESSENGER_SrvHandle *handle, const 
struct GNUNET_HashCode *key)
+{
+  GNUNET_assert((handle) && (key) && (handle->service));
+
+  const struct GNUNET_ShortHashCode *id = get_handle_member_id(handle, key);
+  struct GNUNET_MESSENGER_SrvRoom *room = get_service_room(handle->service, 
key);
+
+  if ((!id) || (!room))
+    return NULL;
+
+  struct GNUNET_MESSENGER_MemberStore *store = get_room_member_store(room);
+  struct GNUNET_MESSENGER_Member *member = get_store_member(store, id);
+
+  const struct GNUNET_MESSENGER_Ego *ego = get_handle_ego(handle);
+
+  if (!ego)
+    return NULL;
+
+  return get_member_session(member, &(ego->pub));
+}
+
 void
 notify_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key,
                        const struct GNUNET_MESSENGER_MemberSession *session,
@@ -523,9 +545,13 @@ notify_handle_message (struct GNUNET_MESSENGER_SrvHandle 
*handle, const struct G
   GNUNET_memcpy(&(msg->context), context, sizeof(msg->context));
   GNUNET_memcpy(&(msg->hash), hash, sizeof(msg->hash));
 
-  msg->flags = (uint32_t) (
-      private_message? GNUNET_MESSENGER_FLAG_PRIVATE : 
GNUNET_MESSENGER_FLAG_NONE
-  );
+  msg->flags = (uint32_t) GNUNET_MESSENGER_FLAG_NONE;
+
+  if (get_handle_member_session(handle, key) == session)
+    msg->flags |= (uint32_t) GNUNET_MESSENGER_FLAG_SENT;
+
+  if (private_message)
+    msg->flags |= (uint32_t) GNUNET_MESSENGER_FLAG_PRIVATE;
 
   char *buffer = ((char*) msg) + sizeof(*msg);
   encode_message (message, length, buffer, GNUNET_YES);

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]