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.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/gnunet_chat_lib.c b/src/gnunet_chat_lib.c
index 2632fb5..e11c92d 100644
--- a/src/gnunet_chat_lib.c
+++ b/src/gnunet_chat_lib.c
@@ -925,6 +925,51 @@ GNUNET_CHAT_context_send_text (struct GNUNET_CHAT_Context *context,
925} 925}
926 926
927 927
928int
929GNUNET_CHAT_context_send_read_receipt (struct GNUNET_CHAT_Context *context,
930 const struct GNUNET_CHAT_Message *message)
931{
932 if ((!context) || (!(context->room)))
933 return GNUNET_SYSERR;
934
935 char zero = '\0';
936 struct GNUNET_MESSENGER_Message msg;
937 msg.header.kind = GNUNET_MESSENGER_KIND_TEXT;
938 msg.body.text.text = &zero;
939
940 const struct GNUNET_MESSENGER_Contact *receiver = NULL;
941
942 if (!message)
943 goto skip_filter;
944
945 if (GNUNET_CHAT_FLAG_NONE != message->flag)
946 return GNUNET_SYSERR;
947
948 if (message->flags & GNUNET_MESSENGER_FLAG_SENT)
949 return GNUNET_OK;
950
951 if (message->flags & GNUNET_MESSENGER_FLAG_PRIVATE)
952 {
953 receiver = GNUNET_MESSENGER_get_sender(context->room, &(message->hash));
954
955 if (!receiver)
956 return GNUNET_SYSERR;
957 }
958
959 if ((!(message->msg)) ||
960 (GNUNET_MESSENGER_KIND_TEXT != message->msg->header.kind))
961 goto skip_filter;
962
963 if ((!(message->msg->body.text.text)) ||
964 (!(message->msg->body.text.text[0])))
965 return GNUNET_SYSERR;
966
967skip_filter:
968 GNUNET_MESSENGER_send_message(context->room, &msg, receiver);
969 return GNUNET_OK;
970}
971
972
928struct GNUNET_CHAT_File* 973struct GNUNET_CHAT_File*
929GNUNET_CHAT_context_send_file (struct GNUNET_CHAT_Context *context, 974GNUNET_CHAT_context_send_file (struct GNUNET_CHAT_Context *context,
930 const char *path, 975 const char *path,