diff options
Diffstat (limited to 'src/gnunet_chat_lib.c')
-rw-r--r-- | src/gnunet_chat_lib.c | 45 |
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 | ||
928 | int | ||
929 | GNUNET_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 | |||
967 | skip_filter: | ||
968 | GNUNET_MESSENGER_send_message(context->room, &msg, receiver); | ||
969 | return GNUNET_OK; | ||
970 | } | ||
971 | |||
972 | |||
928 | struct GNUNET_CHAT_File* | 973 | struct GNUNET_CHAT_File* |
929 | GNUNET_CHAT_context_send_file (struct GNUNET_CHAT_Context *context, | 974 | GNUNET_CHAT_context_send_file (struct GNUNET_CHAT_Context *context, |
930 | const char *path, | 975 | const char *path, |