about summary refs log tree commit diff stats
path: root/src/xmpp
Commit message (Collapse)AuthorAgeFilesLines
* statusbar: check if roster existsMichael Vetter2019-06-042-0/+9
| | | | | | | | | | | | We destory the roster in ev_disconnect_cleanup(). Adding a function to test if the roster has been destroyed and testing for it in the statusbar. So now when the connection is lost 'Lost connection' is printed in all open windows. We can then reconnect with `/connect accountname`. Should fix https://github.com/profanity-im/profanity/issues/1083
* Merge pull request #1106 from profanity-im/saved-accountMichael Vetter2019-06-031-28/+7
|\ | | | | Don't clear saved account data in session_disconnect()
| * Don't clear saved account data in session_disconnect()Dmitry Podgorny2019-06-031-28/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If connection loss occurs, it calls session_disconnect() eventually. This function clears saved account data which is required for reconnection. Therefore, when reconnect timer expires, we get errors: 02/06/2019 04:53:42: stderr: ERR: (profanity:17115): GLib-CRITICAL **: 04:53:42.305: g_key_file_has_group: assertion 'group_name != NULL' failed 02/06/2019 04:53:43: prof: ERR: Unable to reconnect, account no longer exists: (null) To solve it, don't clear the saved data in session_disconnect(). It will be cleared properly on connection loss if reconnect timer is not configured. But won't be cleared with /disconnect command. So, after /disconnect the data will live in memory until the next /connect. Also, remove some copy-paste in connection loss path.
* | Cancel autoping timer on disconnect or connection lossDmitry Podgorny2019-06-032-8/+13
|/ | | | | | | | | If Profanity is disconnected in any way before ping response is received, the autoping timer will expire after the next connection is established. As result, user will be disconnected immediately. Cancel autoping timer in ev_disconnect_cleanup(), so it is done for all kind of disconnections.
* xmpp/connection: fix #1103Dmitry Podgorny2019-06-011-11/+28
| | | | | | | | | | | | When connection is lost, profanity tries to disconnect what leads to an infinite loop. The loop occurs, because connection_disconnet() runs xmpp_run_once() separately and waits for XMPP_CONN_DISCONNECT event. But it doesn't happen, because the connection object is disconnected. As solution, don't disconnect after XMPP_CONN_DISCONNECT is received. Also, don't free libstrophe objects while the event loops executes, because the event loop continues using objects after callbacks quit.
* Update tests with new URLMichael Vetter2019-05-031-1/+1
| | | | https://github.com/profanity-im/profanity/issues/1085
* Update profanity URL in entity capabilities stanzaMichael Vetter2019-05-031-1/+1
| | | | Regards https://github.com/profanity-im/profanity/issues/1085
* OMEMO: Check if ID is present before using itMichael Vetter2019-04-241-1/+5
| | | | Fixes https://github.com/boothj5/profanity/issues/1079
* Handle presence received before rosterPaul Fariello2019-04-172-0/+44
| | | | | | | | | | Presence of contact not found in roster are filtered out. But sometimes roster is received after a first few presences. We choose to store presences until we receive roster and then process this presences. Fixes #1050
* Handle MUC anonymous state when auto starting OMEMOPaul Fariello2019-04-171-2/+14
| | | | | | | When auto joining a MUC we don't have access to required information so we just don't start OMEMO at this time. Once we receive disco info we then try to start OMEMO.
* Ensure MUC is Non-Anonymous before starting OMEMOPaul Fariello2019-04-172-0/+27
| | | | | | Store MUC anonymous type in mucwin for that purpose. Fixes #1065
* Add random string at the end of the default resourcePaul Fariello2019-04-123-1/+23
| | | | | | | | When connecting for the first time or when creating a new account don't use only 'profanity' as default resource. Some server don't support having 2 connection with same resource. Using profanity as default lead to deconnections.
* Fix build on travisPaul Fariello2019-04-101-0/+2
|
* Wait for discovery end to publish omemo devicelist and bundlePaul Fariello2019-04-105-3/+34
| | | | Add sv_ev_connection_features_received for that purpose
* Rework MUC reflected message filteringPaul Fariello2019-04-104-5/+33
| | | | | | | | | 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.
* Fix devicelist notification handlerPaul Fariello2019-04-102-6/+5
| | | | devicelist handler should be kept after trigger
* Add support for missing from in bundle iqPaul Fariello2019-04-101-3/+9
|
* Handle bundle publication error on publish-optionsPaul Fariello2019-04-104-21/+164
| | | | | We try to reconfigure node and publish again. If it fails again then we give up.
* Ensure encrypted carbon of own message are marked as encryptedPaul Fariello2019-04-101-1/+1
|
* Temporarly disable check for publish-options supportPaul Fariello2019-04-101-6/+2
|
* Use connection_support to check for publish-options supportPaul Fariello2019-04-101-6/+2
|
* Add support for disconnect in OMEMOPaul Fariello2019-04-103-13/+46
|
* Revert "Ensure room isn't anonymous"Paul Fariello2019-04-101-1/+0
| | | | This reverts commit 733e1a24c7e08dde6aa2c15ec4528220aa360845.
* Add publish option to OMEMO device list and bundlePaul Fariello2019-04-104-0/+57
|
* Ensure room isn't anonymousPaul Fariello2019-04-101-0/+1
|
* Log and print outgoing encrypted messagePaul Fariello2019-04-101-2/+5
|
* Add support for sending encrypted message in MUCPaul Fariello2019-04-102-5/+11
|
* Ensure saved_account is set before calling sv_ev_login_account_successPaul Fariello2019-04-101-1/+1
|
* Add MUC message decryptionPaul Fariello2019-04-102-7/+14
|
* device_list iq should be from barejid or nonePaul Fariello2019-04-102-28/+17
| | | | | | | Ensure we request device_list and remove non conforming handling of responses. Move initialisation of iq_handlers before call to sv_ev_login_account_success
* Add store hints for OMEMO encrypted messagesPaul Fariello2019-04-103-0/+15
| | | | | | | | | 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.
* Add support for libsignal-protocol-c 2.3.2Paul Fariello2019-04-101-1/+1
|
* Randomly choose a prekey on session buildPaul Fariello2019-04-101-19/+22
|
* Remove hints preventing carbons to work properlyPaul Fariello2019-04-101-3/+0
|
* Don't explicitely disable carbons for OMEMO messagesPaul Fariello2019-04-101-1/+0
|
* Add support for encrypted carbonPaul Fariello2019-04-102-5/+15
| | | | Fix {signed,}_pre_key store
* Follow normal workflow for OMEMO message receptionPaul Fariello2019-04-103-116/+107
| | | | | | 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.
* Add chat session state to OMEMO message stanzaPaul Fariello2019-04-101-0/+5
|
* Add default body on OMEMO messagePaul Fariello2019-04-101-0/+8
|
* Add OMEMO message encryption and decryptionPaul Fariello2019-04-103-3/+205
|
* Create signal sessionPaul Fariello2019-04-101-3/+47
|
* Add signal store backend and OMEMO start commandPaul Fariello2019-04-104-1/+104
|
* Request for device list when OMEMO is readyPaul Fariello2019-04-104-3/+49
|
* Fix devicelist subscription and handle pubsub eventPaul Fariello2019-04-107-33/+81
| | | | Devicelist subscription can be done directly with caps_add feature.
* Add pubsub event callbackPaul Fariello2019-04-103-0/+65
| | | | Also add generic message callback struct
* Rename ProfIdCallback into ProfIqCallbackPaul Fariello2019-04-103-17/+17
| | | | Goal is to create other kind of callback no based on id cmp
* Add devicelist and bundle publicationPaul Fariello2019-04-105-6/+198
|
* Add devicelist subscriptionPaul Fariello2019-04-105-0/+50
|
* XEP-0027: Mention XEP in message bodyMichael Vetter2019-02-201-1/+1
| | | | 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.
* Update copyright to include 2019Michael Vetter2019-01-2237-37/+37
|