diff options
author | Tobias Markmann <tm@ayena.de> | 2016-07-29 09:47:23 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-11-28 10:35:05 (GMT) |
commit | 2039930eadd4756068a8a60c8340d9908a7136d3 (patch) | |
tree | d8aca4bf98a2bb6e3b819305b1f87af3117f4910 /Swift | |
parent | 2f90eb7409df91a80c60b189242ac0c1de313910 (diff) | |
download | swift-2039930eadd4756068a8a60c8340d9908a7136d3.zip swift-2039930eadd4756068a8a60c8340d9908a7136d3.tar.bz2 |
Correctly handle server initiated closing of stream
If a server closes the XMPP stream, it sends a </stream:stream>
tag. The client is supposed to respond with the same tag and
then both parties can close the TLS/TCP socket.
Previously Swift(-en) would simply ignore </stream:stream>
tag if it was not directly followed by a shutdown of the TCP
connection.
In addition there is now a timeout timer started as soon as
Swiften or the server initiates a shutdown. It will close
the socket and cleanup the ClientSession if the server does
not respond in time or the network is faulty.
Refactored some code in ClientSession in the process. Moved
ClientSession::State to a C++11 strongly typed enum class.
This also fixes issues where duplicated </stream:stream>
tags would be send by Swift.
Test-Information:
Tested against Prosody ba782a093b14 and M-Link 16.3v6-0,
which provide ad-hoc commands to end a user session.
Previously this was ignored by Swift. Now it correctly responds
to the server, detects it as a disconnect and tries to
reconnect afterwards.
Added unit test for the case where the server closes the
session stream.
Change-Id: I59dfde3aa6b50dc117f340e5db6b9e58b54b3c60
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/ChangeLog.md | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Swift/ChangeLog.md b/Swift/ChangeLog.md index 475062c..4c88d88 100644 --- a/Swift/ChangeLog.md +++ b/Swift/ChangeLog.md @@ -1,34 +1,35 @@ 4.0-in-progress --------------- - Fix UI layout issue for translations that require right-to-left (RTL) layout - macOS releases are now code-signed with a key from Apple, so they can be run without Gatekeeper trust warnings +- Handle sessions being closed by the server 4.0-beta2 ( 2016-07-20 ) ------------------------ - Fix Swift bug introduced in 4.0-beta1 that results in the UI sometimes getting stuck during login 4.0-beta1 ( 2016-07-15 ) ------------------------ - Support for message carbons (XEP-0280) - Improved spell checker support on Linux - Enabled trellis mode as a default feature, allowing several tiled chats windows to be shown at once - New chat theme including a new font - And assorted smaller features and usability enhancements 3.0 ( 2016-02-24 ) ------------------ - File transfer and Mac Notification Center issues fixed - Fix connection to servers with invalid or untrusted certificates on OS/X - Support for the Notification Center on OS X - Users can now authenticate using certificates (and smart cards on Windows) when using the 'BOSH' connection type. - Encryption on OS X now uses the platform's native 'Secure Transport' mechanisms. - Emoticons menu in chat dialogs - Bookmark for rooms can now be edited directly from the ‘Recent Chats’ list - Adds option to workaround servers that don’t interoperate well with Windows (schannel) encryption - Rooms entered while offline will now get entered on reconnect - Chats can now be seamlessly upgraded to multi-person chats by either inviting someone via the ‘cog’ menu, or dragging them from the roster. This relies on server-side support with an appropriate chatroom (MUC) service. - Highlighting of keywords and messages from particular users can now be configured (Keyword Highlighting Blog post). - Full profile vcards (contact information etc.) are now supported and can be configured for the user and queried for contacts. - Simple Communication Blocking is now supported (subject to server support) to allow the blocking of nuisance users. - Swift can now transfer files via the ‘Jingle File Transfer’ protocol. - The status setter will now remember previously set statuses and will allow quick access to these when the user types part of a recently used status. |