1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00
Commit Graph

254 Commits

Author SHA1 Message Date
Michael Vetter
53640f6e97 Remove prefix from stanza id
We sent `prof_prefix_uuid` as id. Where the prefix was also optional.
We don't need this at all.
2019-10-17 15:40:40 +02:00
Michael Vetter
b3ed213668 Improve MUC 1:1 logging
If we get a private message from a user in a MUC profanity shows this
like:
`profanity@roomsASDF.dismail.de/Martin: Hi`

This was so far logged at:
`~/.local/share/profanity/chatlogs/my-account-at-server/profanity_at_rooms.dismail.de/2019_09_04.log` as:

```
10:48:13 - profanity@rooms.dismail.de: Hi
```

So the nickname was not saved anywhere. This is due to us not knowing
whether we got a regular message from user@server.org/resource or a MUC
PM from room@server.org/user.

We now check for `<x xmlns='http://jabber.org/protocol/muc#user' />` and
add the resourcepart to the logging if we get it.

The file will be created at
`~/.local/share/profanity/chatlogs/my-account-at-server/profanity_at_rooms.dismail.de_nick` and look like:

```
23:59:43 - nick: Hi
```

Fix https://github.com/profanity-im/profanity/issues/1184
2019-10-07 00:05:37 +02:00
Michael Vetter
f1d31e024c Fix typo handel -> handle 2019-10-06 23:00:08 +02:00
Michael Vetter
6ab6fe8649 Detect MUC history correctly with some Prosody versions
Some versions of prosody send the domainpart.
See https://issues.prosody.im/1416

Workaround to handle those cases.
Thanks to Holger Weiss for helping with this!

Fix https://github.com/profanity-im/profanity/issues/1190
2019-09-30 10:01:19 +02:00
Michael Vetter
09c5f38f11 Set message->plain in carbon case
message->plain should always contain something. In the case of the
carbons we forgot to set if rom the body in case it's empy.
2019-09-04 10:27:03 +02:00
Holger Weiß
3228ab47d3 Don't render (all) delayed messages as MUC history
Double-check that a <delay/> tag on a groupchat message was actually
added by the MUC service (rather than the sending client) before
assuming it was received from the MUC history.

Fixes #1173.
2019-08-20 17:51:26 +02:00
Paul Fariello
c0e8f72276 Fix plaintext private message handling 2019-07-04 14:02:42 +02:00
Michael Vetter
4a6b1665f3 Use correct jid variable 2019-07-03 15:28:46 +02:00
Michael Vetter
f504a02167 Define goto out in _private_chat_handler() 2019-07-03 15:27:31 +02:00
Michael Vetter
19902e8e21 Set plain message in _private_chat_handler
In case that plain is NULL we need to copy over from body.

Fix https://github.com/profanity-im/profanity/issues/1144
2019-07-03 15:16:19 +02:00
Paul Fariello
45e8467231 Fix a segfault when carbon has no body 2019-06-21 16:49:52 +02:00
Paul Fariello
498b75afa9 Don't highlight cleartext message as untrusted 2019-06-21 15:50:41 +02:00
Paul Fariello
ac96a6951d Fix segfault when receiving messages without ID 2019-06-21 12:03:08 +02:00
Paul Fariello
a444137e66 Fix NULL pointer when handling non encrypted message in MUC 2019-06-21 11:34:36 +02:00
Paul Fariello
f831f65737 Rename prof_message_t into ProfMessage 2019-06-20 14:30:45 +02:00
Paul Fariello
44d16e9141 Add prof_message_t to wrap all message attributes
Probably missing copy of body to plain in carbon and privmessage.
Only covers the incoming message path because goal is OMEMO decryption
of untrusted message.
Cover some of the log functions but not all.
2019-06-20 14:30:42 +02:00
Paul Fariello
3bb3cc625d Use flags in xmmp/message.c for encryption and trust 2019-06-20 14:30:37 +02:00
Paul Fariello
a650ecc67d Add trusted state after OMEMO decryption
Use it to print message on red background if not trusted.
2019-06-20 14:29:55 +02:00
Michael Vetter
b8c8059402 Call message_handlers_clear() upon disconnect
Free pubsub_event_handlers. Fix memory leaks.
2019-06-20 12:37:32 +02:00
Paul Fariello
e69f947547 Rework MUC reflected message filtering
Reflected messages can't be filtered by nick only otherwise you might
ignore messages comming from you on another devices.

Consequently we maintain a list of sent messages id in mucwin.
To be sure the id will be correctly reflected we use the origin-id
stanza.
2019-04-10 17:23:46 +02:00
Paul Fariello
65b3f82c5f Fix devicelist notification handler
devicelist handler should be kept after trigger
2019-04-10 17:23:46 +02:00
Paul Fariello
2015ba201d Ensure encrypted carbon of own message are marked as encrypted 2019-04-10 17:23:45 +02:00
Paul Fariello
91ee289c77 Add support for disconnect in OMEMO 2019-04-10 17:12:31 +02:00
Paul Fariello
4e1ffa6bdb Log and print outgoing encrypted message 2019-04-10 17:12:31 +02:00
Paul Fariello
a9d55dec92 Add support for sending encrypted message in MUC 2019-04-10 17:12:31 +02:00
Paul Fariello
a3897abba1 Add MUC message decryption 2019-04-10 17:12:31 +02:00
Paul Fariello
36ce21fc6d Add store hints for OMEMO encrypted messages
Store hints are required has some server might discard messages without
body. Here we ensure OMEMO messages are stored on server and delivered
to client when they connect back.

It's really important since it avoid libsignal to desynchronize
counters.
2019-04-10 17:12:31 +02:00
Paul Fariello
97c661271b Add support for libsignal-protocol-c 2.3.2 2019-04-10 17:12:31 +02:00
Paul Fariello
695694051e Remove hints preventing carbons to work properly 2019-04-10 16:31:45 +02:00
Paul Fariello
bcd582be42 Don't explicitely disable carbons for OMEMO messages 2019-04-10 16:31:45 +02:00
Paul Fariello
9b8c1d7d2c Add support for encrypted carbon
Fix {signed,}_pre_key store
2019-04-10 16:31:45 +02:00
Paul Fariello
810ea32223 Follow normal workflow for OMEMO message reception
We try to decrypt all messages, if it's successful we use
sv_ev_incoming_message even for OMEMO messages. We pass an OMEMO
boolean to let UI be aware that message were encrypted.
2019-04-10 16:03:50 +02:00
Paul Fariello
d871efdcf9 Add chat session state to OMEMO message stanza 2019-04-10 16:03:50 +02:00
Paul Fariello
904904d74e Add default body on OMEMO message 2019-04-10 16:03:50 +02:00
Paul Fariello
0fb27dc496 Add OMEMO message encryption and decryption 2019-04-10 16:03:50 +02:00
Paul Fariello
756fefb09a Fix devicelist subscription and handle pubsub event
Devicelist subscription can be done directly with caps_add feature.
2019-04-10 16:03:50 +02:00
Paul Fariello
1ae5d9f1f8 Add pubsub event callback
Also add generic message callback struct
2019-04-10 16:03:50 +02:00
Michael Vetter
4792984f1e XEP-0027: Mention XEP in message body
With all the different kinds of encryption (OMEMO, OTR3 OTR4, PGP in XEP-0027 and XEP-0373) it might be helpful to know which kind of encryption is used.
2019-02-20 10:48:28 +01:00
Michael Vetter
706af9a900 Update copyright to include 2019 2019-01-22 11:31:45 +01:00
Michael Vetter
6d80700329 Move ID generation to xmpp folder
create_unique_id() was changed to use UUIDs instead of a counter in the
last commit. Since now it depends on connection_create_uuid() which is
in the xmpp subfolder the function should also be moved there.

Renamed it to connection_create_stanza_id() and moved it to
src/xmpp/connection.c.

Discussion happened in https://github.com/boothj5/profanity/pull/1010
2018-08-30 11:17:04 +02:00
James Booth
250e972b7a Update copyright 2018-01-21 15:00:02 +00:00
James Booth
68a3daedb9 Update Copyright 2017-01-28 17:24:22 +00:00
James Booth
b712820c99 Check barejid in carbons 2017-01-24 13:37:28 +00:00
James Booth
8e75437a7e Add carbons from check 2017-01-23 22:25:36 +00:00
James Booth
fca59a3110 log_info on private carbons 2016-08-28 17:27:26 +01:00
James Booth
948d63d855 Tidy _handle_carbons 2016-08-20 21:37:20 +01:00
James Booth
d61abd3577 Use libstrophe xmpp_message_get_body convenience function 2016-08-20 19:23:32 +01:00
James Booth
39ff399626 Use libstrophe xmpp_message_new convenience function 2016-08-20 19:08:13 +01:00
James Booth
45048e3ac8 Replace stanza_create_message with libstrophe convenience functions 2016-08-20 18:51:19 +01:00
James Booth
24c3eff428 Use libstrophe convenience functions for stanza attributes 2016-08-20 18:16:51 +01:00
James Booth
a978bb12bf Send receipt request only when receiver supports feature
issue #829
2016-08-18 22:53:23 +01:00
James Booth
0a57c4de78 Tidy headers 2016-07-24 15:43:51 +01:00
James Booth
e8fc80f5c1 Update GPL link in headers 2016-07-24 01:14:49 +01:00
James Booth
d1c71e98f4 Move connection fulljid function 2016-05-06 01:12:54 +01:00
James Booth
88f423afea Rename jabber_ functions 2016-05-06 00:53:03 +01:00
James Booth
f6fa63b374 Renamed connection.c -> session.c 2016-05-05 22:10:10 +01:00
James Booth
aabe3afff8 Rename stanza handler init functions 2016-05-02 22:34:43 +01:00
James Booth
31ab43ea2d Free stanza text and DiscoInfo features 2016-05-02 00:40:16 +01:00
James Booth
2bacd43a16 Free stanza text on plugin send hooks 2016-05-01 23:41:57 +01:00
Dmitry Podgorny
efbf233c85 Define stanza's attributes as const char*
In most get-like funcitons libstrophe returns pointer to a string
that resides in an internal structure (e.g. xmpp_stanza_t). Hence,
Profanity must not change such strings. Define respective variables
as 'const char*' to reduce a chance of error and conform future
libstrophe's interface.

This patch mostly replaces 'char *' with 'const char*', but also
fixes two memory leaks after stanza_get_reason(). Add comment within
stanza_get_reason() to fix conflict with different allocator types.
2016-04-27 10:31:28 +00:00
Dominik Heidler
1b0ce852bb Implement XEP-0363: HTTP File Upload 2016-04-26 23:50:55 +02:00
James Booth
9b177a9e01 Removed #AX_PREFIX_CONFIG_H 2016-03-31 21:05:02 +01:00
James Booth
94b9b1d8e4 Merge branch 'master' into stanza-hooks 2016-03-29 21:44:18 +01:00
James Booth
7b138b71db PGP: Also encrypt using sender public key 2016-03-29 21:24:37 +01:00
James Booth
d39e48ba18 Use one stanza handler per type (message, iq, presence)
Allows plugins to stop stanza processing
2016-03-28 01:25:48 +01:00
James Booth
8933d59b03 Added basic stanza receive eooks 2016-03-27 21:36:29 +01:00
James Booth
7b34f72007 Use xmpp_send_raw_string instead of xmpp_send_raw 2016-03-26 16:44:02 +00:00
James Booth
d0397f3da5 Added stanza send hooks for plugins 2016-03-26 15:50:16 +00:00
James Booth
6f537c3818 Add PGP decryption for incoming/outgoing carbons 2016-03-22 00:20:29 +00:00
James Booth
1f90aca503 Merge branch 'master' into plugins-c
Conflicts:
	src/main.c
	src/ui/console.c
2016-02-14 23:00:52 +00:00
James Booth
e53e94f1e2 Updated copyright 2016-02-14 22:54:46 +00:00
James Booth
41fe8c22b1 Added C plugin code from plugins branch 2016-02-14 22:28:55 +00:00
James Booth
c8a6bdb381 Applied coding style to src/xmpp/ 2015-10-26 00:14:23 +00:00
James Booth
2b88e2f1bf Check for libmesode, fall back to libstrophe 2015-09-21 21:40:04 +01:00
James Booth
b266e4d035 Pass delay timestamp to all incoming chat events 2015-09-08 20:18:31 +01:00
James Booth
2af5c151a0 Tidied pgp memory allocations 2015-08-11 01:00:23 +01:00
James Booth
0410dd90f1 Free timestamp and id for receipts 2015-08-09 23:08:36 +01:00
James Booth
7151792b8c Handle private messages that include muc#user namespace 2015-08-02 01:12:54 +01:00
Sam Whited
167ee28ec0 Add no-copy and no-store hints to OTR messages 2015-07-01 09:04:54 -05:00
James Booth
d5f79c7b35 Use reference counts for GDateTimes #516 2015-06-30 16:21:21 +01:00
James Booth
dd206ef637 WIP fix for #516, needs memory cleanup 2015-06-29 23:48:41 +01:00
James Booth
240f6a3f79 Fixed various jid and account mem leaks 2015-06-24 20:53:04 +01:00
James Booth
5669799690 Encryption modes for sv_ev_incoming_message 2015-06-21 20:08:46 +01:00
James Booth
9b991ae058 Extracted chat session code from message senders 2015-06-21 17:11:23 +01:00
James Booth
e45afd5c09 Added pgp checks for message sending 2015-06-21 01:48:25 +01:00
James Booth
65ea572dae Merge branch 'master' into pgp 2015-05-04 21:31:22 +01:00
James Booth
a0c872edf8 Extracted carbons handling 2015-05-04 21:31:05 +01:00
James Booth
a5677206e9 Merge branch 'master' into pgp 2015-05-04 21:20:40 +01:00
James Booth
ac940c2c8a Revert "Added carbons handler"
This reverts commit ff867e7f2b.
2015-05-04 21:18:53 +01:00
James Booth
0f3bece9e2 Merge branch 'master' into pgp 2015-05-03 02:35:15 +01:00
James Booth
ff867e7f2b Added carbons handler 2015-05-03 02:34:58 +01:00
James Booth
f65c82e112 Merge branch 'master' into pgp 2015-05-03 01:48:32 +01:00
James Booth
f25f90b38b Extracted receipt request processing in message.c 2015-05-03 01:48:12 +01:00
James Booth
d3f4347513 Merge branch 'master' into pgp
Conflicts:
	src/xmpp/message.c
2015-05-03 01:30:14 +01:00
James Booth
530c060d2a Extract private message hanlding in message.c 2015-05-03 01:25:33 +01:00
James Booth
79d21d4cd2 Merge branch 'master' into pgp 2015-05-03 00:35:47 +01:00
James Booth
236c854419 Tidy message.c 2015-05-03 00:35:31 +01:00
James Booth
03ef791401 Merge branch 'master' into pgp 2015-05-03 00:06:12 +01:00
James Booth
5a90e2862e Extracted receipt received handler 2015-05-03 00:05:47 +01:00
James Booth
0bc4377ad7 Merge branch 'master' into pgp 2015-05-02 23:40:34 +01:00