summaryrefslogtreecommitdiff
path: root/src/chat/messenger.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat/messenger.c')
-rw-r--r--src/chat/messenger.c32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/chat/messenger.c b/src/chat/messenger.c
index 62b93e8..72ba93a 100644
--- a/src/chat/messenger.c
+++ b/src/chat/messenger.c
@@ -57,10 +57,34 @@ _chat_messenger_message(void *cls,
{
MESSENGER_Application *app = (MESSENGER_Application*) cls;
- if (GNUNET_CHAT_KIND_LOGIN == GNUNET_CHAT_message_get_kind(message))
- application_call_event(app, event_update_profile);
- else if (GNUNET_CHAT_KIND_TEXT == GNUNET_CHAT_message_get_kind(message))
- printf("%s\n", GNUNET_CHAT_message_get_text(message));
+ const enum GNUNET_CHAT_MessageKind kind = GNUNET_CHAT_message_get_kind(message);
+ const struct GNUNET_CHAT_Contact* sender = GNUNET_CHAT_message_get_sender(message);
+
+ struct GNUNET_TIME_Absolute time = GNUNET_CHAT_message_get_timestamp(message);
+
+ printf("- %d, %lu", kind, time.abs_value_us);
+
+ if (sender)
+ printf(", %s\n", GNUNET_CHAT_contact_get_name(sender));
+ else
+ printf("\n");
+
+ switch (kind)
+ {
+ case GNUNET_CHAT_KIND_LOGIN:
+ application_call_event(app, event_update_profile, NULL);
+ break;
+ case GNUNET_CHAT_KIND_TEXT:
+ printf("text: %s\n", GNUNET_CHAT_message_get_text(message));
+ break;
+ case GNUNET_CHAT_KIND_JOIN:
+ if (GNUNET_YES == GNUNET_CHAT_message_is_sent(message))
+ application_call_event(app, event_update_chats, context);
+
+ break;
+ default:
+ break;
+ }
return GNUNET_YES;
}