about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Use flags in xmmp/message.c for encryption and trustPaul Fariello2019-06-206-25/+44
|
* Add trusted state after OMEMO decryptionPaul Fariello2019-06-207-18/+24
| | | | Use it to print message on red background if not trusted.
* Decrypt all incoming OMEMO msgPaul Fariello2019-06-203-1/+23
| | | | | Trust all key as long as it's for reading. This code isn't multithread safe.
* _bookmark_destroy: follow normal logicMichael Vetter2019-06-201-7/+5
|
* Call message_handlers_clear() upon disconnectMichael Vetter2019-06-203-0/+10
| | | | Free pubsub_event_handlers. Fix memory leaks.
* Call iq_handlers_clear() upon disconnectMichael Vetter2019-06-203-0/+10
| | | | Free id_handlers. Fix memory leaks.
* Free contacts in omemo_start_sessions()Michael Vetter2019-06-191-0/+1
|
* Free OMEMO session store upon disconnectMichael Vetter2019-06-191-0/+1
|
* Fix prefs_get_string mem leaks in statusbarMichael Vetter2019-06-191-6/+18
|
* Free last_msg_timestampMichael Vetter2019-06-191-0/+4
| | | | Fix memory leak.
* Add option to set all window related time formatsMichael Vetter2019-06-173-4/+51
| | | | | | | | | | | | | | | | | | | Implements feature requested at: https://github.com/profanity-im/profanity/issues/632 So instead of: /time console set <format> /time chat set <format> /time muc set <format> /time mucconfig set <format> /time private set <format> /time xml set <format> As a short cut the user can do: /time all set <format> Excluding statusbar and lastactivity settings since they are not for main windows, but used slightly differently.
* Add copyright to omemo codeMichael Vetter2019-06-176-0/+199
|
* Add myself to copyrightMichael Vetter2019-06-1714-0/+16
| | | | Like discussed with James.
* Use profanity channel as exampleMichael Vetter2019-06-171-3/+3
|
* Merge pull request #1110 from profanity-im/feature/704-ui-behaviour-reconnectMichael Vetter2019-06-115-2/+57
|\ | | | | Feature/704 ui behaviour reconnect
| * Safe last MUC message timestamp per MUCMichael Vetter2019-06-113-8/+10
| | | | | | | | | | | | After pasis review of my code he thinks it's better to safe the timestamp per MUC so we can account for some problems that could occur with timing.
| * Only show MUC subject on first connectMichael Vetter2019-06-051-1/+1
| | | | | | | | | | | | For #704 we don't show the room history upon reconnect. Now we also don't show the room subject in the channel upon re-established connection.
| * Reduce timestamp call when saving last muc messageMichael Vetter2019-06-051-12/+13
| | | | | | | | Let's test for mucwin earlier.
| * Only print room history for new messages upon reconnectMichael Vetter2019-06-053-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If re-establish a connection don't print the room history again. In case there there happened nothing at all since we got the room history on the last connection. And in case there were no new messages during the time we have been disconnected. Instead of printing the room history again we now print 'Re-established Connection'. This adds a bit of overhead since we save the timestamp upon every MUC message. See: https://github.com/profanity-im/profanity/issues/704
* | Rejoin all MUCs on reconnectMichael Vetter2019-06-101-5/+3
| | | | | | | | Should fix https://github.com/profanity-im/profanity/issues/1120
* | Merge pull request #1125 from profanity-im/fix/519-logrotateMichael Vetter2019-06-101-6/+9
|\ \ | | | | | | Iterate logfiles until 100 are reached
| * | Iterate logfiles until 100 are reachedMichael Vetter2019-06-071-6/+9
| | | | | | | | | | | | Fix https://github.com/profanity-im/profanity/issues/519
* | | Merge pull request #1124 from ↵Michael Vetter2019-06-082-16/+122
|\ \ \ | |/ / |/| | | | | | | | paulfariello/feature/remove_session_when_untrusting_omemo_device Remove OMEMO session when untrusting a fingerprint
| * | Remove OMEMO session when untrusting a fingerprintPaul Fariello2019-06-072-16/+122
| | | | | | | | | | | | | | | | | | We have to store known_devices in a long term fashion otherwise we might not be able to delete session if it is remove from device list server side.
* | | Merge pull request #1123 from profanity-im/fix/1093-already-started-messageMichael Vetter2019-06-071-40/+25
|\ \ \ | | | | | | | | Print omemo start related msgs into correct window
| * | | Refactor cmd_omemo_startMichael Vetter2019-06-071-38/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some code was duplicated/similar. The parts about using a chatwin while being started from another window (recipient provided) and being a chatwin were the same. Like this it should be easier to read and less code.
| * | | Print omemo start related msgs into correct windowMichael Vetter2019-06-071-3/+3
| | | | | | | | | | | | | | | | | | | | Print them in the window of the contact. Not just the current window. Fix https://github.com/profanity-im/profanity/issues/1093
* | | | Merge pull request #1118 from profanity-im/fix/1117-omemo-autocompletion-crashMichael Vetter2019-06-071-26/+27
|\ \ \ \ | |/ / / |/| | | Only complete certain omemo commands if connected
| * | | Only complete certain omemo commands if connectedMichael Vetter2019-06-061-26/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the omemo commands depend on the roster being present. Several of those functions call `assert()` if that's not the case. Modify omemo autocompletion in such a way that only things that don't need the roster will be completed. Only works on first level. When typing `/omemo` it will still complete to `/omemo start` but not offer suggestions for that, but print a message that you need to be connected. Fix https://github.com/profanity-im/profanity/issues/1117
* | | | Merge pull request #1121 from profanity-im/feature/notify-plugin-failMichael Vetter2019-06-073-16/+31
|\ \ \ \ | |_|/ / |/| | | Improve plugin load/install failure message
| * | | Improve plugin load/install failure messageMichael Vetter2019-06-073-16/+31
| |/ / | | | | | | | | | | | | | | | In case Python or C plugins are disabled install/load failed silently. Notify the user that we can't load them because profanity was built without support for plugins.
* | | Check for sane argument in autoconnect setMichael Vetter2019-06-051-4/+8
| | | | | | | | | | | | | | | Check that user doesnt do `/autoconnect set `. Which would result in: `Account '(null)' does not exist`.
* | | Check if valid account before setting autoconnectMichael Vetter2019-06-051-3/+7
|/ / | | | | | | Fixes https://github.com/profanity-im/profanity/issues/1112
* / Add omemo.char theme optionMichael Vetter2019-06-051-0/+8
|/ | | | Thanks to @kaffekanne for noticing this!
* statusbar: check if roster existsMichael Vetter2019-06-043-2/+13
| | | | | | | | | | | | 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
* statusbar: reduce duplicate codeMichael Vetter2019-06-041-32/+9
| | | | | | | | | | status_bar_new() and status_bar_active() are almost identical. Let's use one helper function to not duplicate code. I thought about renaming both functions into one and adding another parameter but didn't come up with a good name for the function that clearly describes what it does. So staying with current names + helper functions.
* Determine chat window names beforehandMichael Vetter2019-06-041-13/+44
| | | | | | | | | Save the name for displaying the windows in the statusbar inside the tab object. So far we calculated them repeatedly and this created issues when we lost the connection. Regards 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-033-8/+14
|/ | | | | | | | | 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.
* Close windows on connection loss not general disc.Michael Vetter2019-05-272-1/+1
| | | | | | | | | | Call `ui_close_all_wins();` only if we disconnect on purpose not when connection is lost. Otherwise users might miss messages. This partly reverts 6ac73db876c83c7068c4795b19c09ea59eb18a40. Regards https://github.com/profanity-im/profanity/issues/1083
* Merge pull request #1092 from frnky/remove_mblenMichael Vetter2019-05-231-5/+2
|\ | | | | Don't call mblen() to not depend on locale
| * Don't call mblen() to not depend on localeFrank Zschockelt2019-05-221-5/+2
| | | | | | | | | | | | | | | | | | | | mblen will fail with return code -1 if the locale used by the unit tests isn't available on the machine. This will lead to an off by one error in some tests where the needle is at the end of the haystack. Since prof_occurrences expect null-terminated strings, the character after the needle can simply be found by incrementing the address of the found needle with strlen(needle).
* | Correctly handle malformed OMEMO messagesPaul Fariello2019-05-231-4/+8
|/ | | | Fix #1101
* Merge pull request #1098 from optmzr/fix-omemo-gen-messageMichael Vetter2019-05-221-0/+1
|\ | | | | | | | | Force UI update before generating OMEMO crypto materials The message wouldn't show up before the generation of OMEMO crypto materials started.
| * Force UI update before generating OMEMO crypto materialsWilliam Wennerström2019-05-211-0/+1
| |
* | Create seperate function for disconnect cleanupMichael Vetter2019-05-194-30/+113
|/ | | | | Duplicate code in client_events.c and server_events.c. Let's have events/common.c and a function containing that code.
* Fix ifdef guard (should have been OMEMO)Michael Vetter2019-05-061-1/+1
|
* Merge pull request #1090 from jubalh/fix/connection-loss-1089Michael Vetter2019-05-061-0/+5
|\ | | | | Reset things on connection loss