aboutsummaryrefslogtreecommitdiff
path: root/src/gnunet_chat_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gnunet_chat_lib.c')
-rw-r--r--src/gnunet_chat_lib.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/gnunet_chat_lib.c b/src/gnunet_chat_lib.c
index 8be813b..a835e48 100644
--- a/src/gnunet_chat_lib.c
+++ b/src/gnunet_chat_lib.c
@@ -306,7 +306,7 @@ GNUNET_CHAT_contact_set_user_pointer (struct GNUNET_CHAT_Contact *contact,
306 306
307 307
308void* 308void*
309GNUNET_CHAT_contact_get_user_pointer (struct GNUNET_CHAT_Contact *contact) 309GNUNET_CHAT_contact_get_user_pointer (const struct GNUNET_CHAT_Contact *contact)
310{ 310{
311 if (!contact) 311 if (!contact)
312 return NULL; 312 return NULL;
@@ -611,7 +611,7 @@ GNUNET_CHAT_context_iterate_messages (struct GNUNET_CHAT_Context *context,
611enum GNUNET_CHAT_MessageKind 611enum GNUNET_CHAT_MessageKind
612GNUNET_CHAT_message_get_kind (const struct GNUNET_CHAT_Message *message) 612GNUNET_CHAT_message_get_kind (const struct GNUNET_CHAT_Message *message)
613{ 613{
614 if (!message) 614 if ((!message) || (!(message->msg)))
615 return GNUNET_CHAT_KIND_UNKNOWN; 615 return GNUNET_CHAT_KIND_UNKNOWN;
616 616
617 switch (message->msg->header.kind) 617 switch (message->msg->header.kind)
@@ -641,7 +641,7 @@ GNUNET_CHAT_message_get_kind (const struct GNUNET_CHAT_Message *message)
641struct GNUNET_TIME_Absolute 641struct GNUNET_TIME_Absolute
642GNUNET_CHAT_message_get_timestamp (const struct GNUNET_CHAT_Message *message) 642GNUNET_CHAT_message_get_timestamp (const struct GNUNET_CHAT_Message *message)
643{ 643{
644 if (!message) 644 if ((!message) || (!(message->msg)))
645 return GNUNET_TIME_absolute_get_zero_(); 645 return GNUNET_TIME_absolute_get_zero_();
646 646
647 return GNUNET_TIME_absolute_ntoh(message->msg->header.timestamp); 647 return GNUNET_TIME_absolute_ntoh(message->msg->header.timestamp);
@@ -701,19 +701,29 @@ GNUNET_CHAT_message_get_read_receipt (const struct GNUNET_CHAT_Message *message,
701 GNUNET_CHAT_MessageReadReceiptCallback callback, 701 GNUNET_CHAT_MessageReadReceiptCallback callback,
702 void *cls) 702 void *cls)
703{ 703{
704 if (!message) 704 if ((!message) || (!(message->msg)))
705 return GNUNET_SYSERR; 705 return GNUNET_SYSERR;
706 706
707 // TODO: request read receipt? / check if newer message was received of sender? 707 struct GNUNET_CHAT_Context *context = message->context;
708 708
709 return GNUNET_SYSERR; 709 if (!context)
710 return GNUNET_SYSERR;
711
712 struct GNUNET_CHAT_MessageIterateReadReceipts it;
713 it.message = message;
714 it.cb = callback;
715 it.cls = cls;
716
717 return GNUNET_MESSENGER_iterate_members(
718 context->room, it_message_iterate_read_receipts, &it
719 );
710} 720}
711 721
712 722
713const char* 723const char*
714GNUNET_CHAT_message_get_text (const struct GNUNET_CHAT_Message *message) 724GNUNET_CHAT_message_get_text (const struct GNUNET_CHAT_Message *message)
715{ 725{
716 if (!message) 726 if ((!message) || (!(message->msg)))
717 return NULL; 727 return NULL;
718 728
719 if (GNUNET_MESSENGER_KIND_TEXT != message->msg->header.kind) 729 if (GNUNET_MESSENGER_KIND_TEXT != message->msg->header.kind)
@@ -726,7 +736,7 @@ GNUNET_CHAT_message_get_text (const struct GNUNET_CHAT_Message *message)
726struct GNUNET_CHAT_File* 736struct GNUNET_CHAT_File*
727GNUNET_CHAT_message_get_file (const struct GNUNET_CHAT_Message *message) 737GNUNET_CHAT_message_get_file (const struct GNUNET_CHAT_Message *message)
728{ 738{
729 if (!message) 739 if ((!message) || (!(message->msg)))
730 return NULL; 740 return NULL;
731 741
732 if (GNUNET_MESSENGER_KIND_FILE != message->msg->header.kind) 742 if (GNUNET_MESSENGER_KIND_FILE != message->msg->header.kind)
@@ -742,7 +752,7 @@ GNUNET_CHAT_message_get_file (const struct GNUNET_CHAT_Message *message)
742struct GNUNET_CHAT_Invitation* 752struct GNUNET_CHAT_Invitation*
743GNUNET_CHAT_message_get_invitation (const struct GNUNET_CHAT_Message *message) 753GNUNET_CHAT_message_get_invitation (const struct GNUNET_CHAT_Message *message)
744{ 754{
745 if (!message) 755 if ((!message) || (!(message->msg)))
746 return NULL; 756 return NULL;
747 757
748 if (GNUNET_MESSENGER_KIND_INVITE != message->msg->header.kind) 758 if (GNUNET_MESSENGER_KIND_INVITE != message->msg->header.kind)
@@ -759,7 +769,7 @@ int
759GNUNET_CHAT_message_delete (const struct GNUNET_CHAT_Message *message, 769GNUNET_CHAT_message_delete (const struct GNUNET_CHAT_Message *message,
760 struct GNUNET_TIME_Relative delay) 770 struct GNUNET_TIME_Relative delay)
761{ 771{
762 if (!message) 772 if ((!message) || (!(message->msg)))
763 return GNUNET_SYSERR; 773 return GNUNET_SYSERR;
764 774
765 struct GNUNET_MESSENGER_Message msg; 775 struct GNUNET_MESSENGER_Message msg;