| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Let's test for mucwin earlier.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| | |
Don't clear saved account data in session_disconnect()
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| | |
Don't call mblen() to not depend on locale
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
|/
|
|
| |
Fix #1101
|
|\
| |
| |
| |
| | |
Force UI update before generating OMEMO crypto materials
The message wouldn't show up before the generation of OMEMO crypto materials started.
|
| | |
|
|/
|
|
|
| |
Duplicate code in client_events.c and server_events.c. Let's have
events/common.c and a function containing that code.
|
| |
|
|\
| |
| | |
Reset things on connection loss
|
| |
| |
| |
| |
| | |
Remove the windows, clear tls certs, clean omemo.
Regards https://github.com/profanity-im/profanity/issues/1089
|
|\ \
| |/
|/| |
Add occupants char
|
| |
| |
| |
| |
| |
| |
| | |
`/occupants char` now sets a character that is displayed before the nick
in MUCs. Similar like `/roster char` is displaying a char for the roster.
Regards #690
|
| |
| |
| |
| | |
https://github.com/profanity-im/profanity/issues/1085
|
| |
| |
| |
| | |
Regards https://github.com/profanity-im/profanity/issues/1085
|
| |
| |
| |
| | |
Regards https://github.com/profanity-im/profanity/issues/1085
|
|/
|
|
| |
Regards https://github.com/profanity-im/profanity/issues/1085
|
|
|
|
|
|
|
|
|
| |
This is actually not needed because result will always be set.
hartmann had problems building profanity on OpenBSD and he proposed this
patch.
Let's use it to make the compiler happy there.
|
|
|
|
| |
Fixes https://github.com/boothj5/profanity/issues/1079
|
|
|
|
| |
There is a typo here. So this actually never worked ;-)
|
|
|
|
|
| |
`/privileges on` lists `Moderator`, `Visitor` etc. Formatting was wrong
here. Printing privilige followed by nickaname in the same line.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Wrapping for the occupants panel like already exists for the roster
panel. See `/occupants wrap on`.
Regards https://github.com/boothj5/profanity/issues/690
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
`/occupants header char` now sets a character that is displayed before
the role (moderator, visitor..) in a room. Similar to `/roster header
char` is displaying a char for the roster.
Regards https://github.com/boothj5/profanity/issues/690
|
| |
|
|
|
|
| |
Indent the jid one more space than nick.
|
| |
|
|
|
|
| |
And when not connected.
|
|
|
|
|
|
|
|
| |
Roster has a `/roster contact indent` option.
Now we have the same for occupants. So contacts in roster and in MUC can
have configurable indentation.
Regards https://github.com/boothj5/profanity/issues/690
|
| |
|
|\
| |
| | |
Handle presence received before roster
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Fixes https://github.com/boothj5/profanity/issues/1069
|
|/
|
|
| |
This should close #1052
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This should never happens since we should ensure MUC is Non-Anonymous
before enabling OMEMO.
But we should neither segfault if this happens.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is 3 policy:
- manual: OMEMO session are only started manually
- automatic: OMEMO session are only started if they have been started
manually before
- always: OMEMO session are always started unless they have been ended
manually before
Closes #1040 and fixes #1052
|
|\
| |
| |
| |
| | |
paulfariello/hotfix/OMEMO-ensure-muc-is-nonanonymous
Ensure MUC is Non-Anonymous before starting OMEMO
|