[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnunet] branch master updated: -added sent flag to messenger service,
gnunet <=