diff options
author | Michael Vetter <jubalh@iodoru.org> | 2019-10-18 11:59:39 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2019-10-18 11:59:39 +0200 |
commit | dfead6415f58bf1709c99be12db96e7701df5ef8 (patch) | |
tree | 0b219fb92d2e9db78f46512279189ef77f0d4b81 /src/event | |
parent | f7474cd72c1dbfcc8d4c3d6060c60a1062364dc2 (diff) | |
download | profani-tty-dfead6415f58bf1709c99be12db96e7701df5ef8.tar.gz |
sv_ev_room_message: log in all cases if not our client
Forgot to check what happens if the length is <= 10.
Diffstat (limited to 'src/event')
-rw-r--r-- | src/event/server_events.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c index 14da016a..6b1b6611 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -285,6 +285,15 @@ sv_ev_room_history(ProfMessage *message) } } +static void _log_muc(ProfMessage *message) +{ + if (message->enc == PROF_MSG_ENC_OMEMO) { + groupchat_log_omemo_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); + } else { + groupchat_log_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); + } +} + void sv_ev_room_message(ProfMessage *message) { @@ -302,23 +311,13 @@ sv_ev_room_message(ProfMessage *message) // whether this client sent it. See connection_create_stanza_id() gsize tmp_len; char *tmp = (char*)g_base64_decode(message->id, &tmp_len); - if (tmp_len > 10) { - // log if not from this client - if (g_strcmp0(&tmp[10], connection_get_profanity_identifier()) != 0) { - if (message->enc == PROF_MSG_ENC_OMEMO) { - groupchat_log_omemo_msg_in(message->jid->barejid, message->jid->resourcepart, (char*)tmp); - } else { - groupchat_log_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); - } - } + // log if not from this client. our client sents at least 10 for the identifier + random message bytes + if ((tmp_len < 11) || (g_strcmp0(&tmp[10], connection_get_profanity_identifier()) != 0)) { + _log_muc(message); } // messages from others } else { - if (message->enc == PROF_MSG_ENC_OMEMO) { - groupchat_log_omemo_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); - } else { - groupchat_log_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); - } + _log_muc(message); } char *old_plain = message->plain; |