summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-04-28Disable false-positive clang warningKevin Smith
Test-Information: ./scons check=1 allow_warnings=0 now passes on latest macOS Change-Id: I4411d6b4953e6e2eb7fbb53e460fef296d24b0e6
2018-04-28Allow Qt to generate 0 as nullptrKevin Smith
Without this, Qt-generated code can't be compiled allow_warnings=0 on macOS Test-Information: ./scons allow_warnings=0 Change-Id: Ifc9409f54ebd60dcfd2eef5d5619fc96e2a52e5f
2018-04-28Fix compiler warnings for SluiftKevin Smith
Test-Information: ./scons allow_warnings=0 Sluift now builds on latest macOS Change-Id: I7aca1c733dd86c772fc3a55f76d4915ad3c76e8d
2018-04-28Fix compiler warnings for SwiftenKevin Smith
Test-Information: ./scons allow_warnings=0 Swiften now builds on latest macOS Change-Id: Ic2095d5d112093d021f7f4695fbce73f315377cf
2018-04-27Add a new merged roster/chats/MUCs viewKevin Smith
This is hidden behind the FUTURE flag, and is not ready for release yet, but is pretty usable. The three top filters (all/people/rooms) aren't plumbed in yet, recents need to be reinstated, and a favourites system would be very desirable. The code for the existing roster/chatlist is largely unchanged and with FUTURE disabled behaviour should not have changed. Lots of this code has now been put inside #ifndef NOT_YET blocks, to make it easy to find and remove later. When making this default later, all instances of NOT_YET should be inspected, unit tests should be added, and use of RECENT should be inspected - those related to this patch should be removed. Not all code is behind NOT_YET, so references to the old recents and chat lists will need to be manually checked and removed. Test-Information: Existing unit tests pass. New unit tests have not been added yet, and need to be before it's removed from FUTURE guards. Firing up Swift with future enabled shows the new view, and disabled doesn't. In both cases clicking around various things in the rosters opens the expected chats. Change-Id: I0e1ce98e4c644fa5b09ef65986cc826b6b564a7b
2018-04-18Mark jids with an empty domainpart as invalidEdwin Mons
When Swiften parsed jids with an empty domainpart (e.g. user@/resource), it would mark the jid as valid, and treat the localpart as domainpart. RFC 6122 states in 2.2 that "A domainpart MUST NOT be zero bytes in length". Unit tests for both a bare jid and a full jid with an empty domainpart have been added. Test-Information: Unit tests pass on Debian 9 Change-Id: Iadaf399cd4158666bfcdd6c075b8bf2102ff5538
2018-04-10Update Debian changelogTobias Markmann
Closed two further bugs from the Debian bug tracker in the changelog entry for 4.0.2. Test-Information: None. Change-Id: I74dd7350990ddd1627b2b9c64b322ed84f3a6186
2018-04-05Fix convertToWindowsVersion() function to handle more RCsswift-4.0.2Tobias Markmann
The new version conversion function allows up to 8 patch releases, up to 11 RC releases, up to 7 beta releases, and up to 5 alpha releases. The script fails hard on invalid input, thus failing the build when used. It also allows for checking the release tag in the release process. Test-Information: Added unit tests for some critical properties of the conversion. As previously the minor number of the Windows version triplet was not used, all new versions using this new scheme are considered newer, for the same major version. Change-Id: I53552a72ceaf7fe90f919990bd3d3be45a976c03
2018-03-29Fix distribution of alpha releasesThanos Doukoudakis
This patch fixes an issue where alpha releases were distributed in the beta and release channels for Ubuntu and Debian distributions. Alpha releases are now distributed only in the development channel. Test-Information: Tested the patch on Debian Stretch by creating a new repository using update_debian_repo.sh and importing builds that were built for Debian Stretch on 4.0beta2, 4.0rc6, 4.0, 5.0alpha and 5.1alpha tags, and some development builds (5.0alpha-dev8). 5.1alpha tag was created locally to have an alpha build that contained the fix. Tested importing builds in the order that originally caused the issue (4.0rc6 then 4.0 then 5.0alphaX) before and after the fix. Change-Id: I65f3d188872112e1d770e6a6af0814d44fcd4bba
2018-03-28Fix error response handling when requesting VCardsswift-4.0.1Tobias Markmann
When fetching a vCard, an empty vCard response and an item-not-found error are semantically the same. Changed the code to treat and item-not-found error as an empty vCard in this case. This enables setting your own vCard on servers that do not return an empty vCard for fresh accounts and generally improves UX when fetching others vCards. Test-Information: Added unit tests verifying new behaviour. Tested with Swift against a Prosody IM instance. Without this change you cannot set the vCard on a fresh user. With this patch you can set your own vCard. Change-Id: I5f9adb4c3d6b6a1a320b834be918ab5ab0b52975
2018-03-27Fix empty marking colour handling in MUCControllerPeter Burgess
When there is a room security marking and the colours have the value "" they should be set to the default black and white. Instead they were being set to "", so I have updated this and uncommented the relevant unit test. Test-Information: The uncommented unit test is now passing, and all other related unit tests still pass. A MUC room with a marking but blank colour values has been tested on a test server and works as expected. Change-Id: I1138ca1f035f8b7c0367c36ec3a65cc857721b8c
2018-03-27Convert cppunit tests into gtests for MUCControllerTestPeter Burgess
As stated above, and one test has been commented out as it was not being run when it was a cppunit test and it fails due to a bug in MUCController. The bug fix patch to follow shortly. Test-Information: All tests run and pass except the one mentioned above that has been temporarily commented out. Change-Id: Ie1ce6039c3b6c97e0072b7518b3337d5dfbf6362
2018-03-27Add new ReferencePayload element class, parser and serializerPeter Burgess
Added a new element object ReferencePayload, and created the parser and serializer to handle this element. Currently no functionality to send references directly in swift, nor to render their contents. Test-Information: Unit tests written and passed for serializer and parser, testing various types of valid and invalid references, and testing references with embedded payloads. Change-Id: I81fd5d9e020fac1729640f297705806af97f6388
2018-03-24Add option for enabling future featuresKevin Smith
Test-Information: None Change-Id: I548a18ff47c45eafda31584858607e5705386911
2018-03-24Always use netbook modeKevin Smith
Thus begins 5.0's UI reworking. This removes the option for netbook mode, leaving it always-on. Test-Information: Ran with no parameters on macOS, resized the window, quit, restarted, size seemed to have persisted. Logged in, menus seem to work (debug console at least). Sign out, log in again was fine. Change-Id: I365eb6ada33994b75636675576a1443f9b385593
2018-03-24Allow setting full JID affiliations in MUCsKevin Smith
Test-Information: Equivalent change in Stroke has been tested in MLC. Change-Id: I254e974fc55e9bd99c722c79a02a3ae1ed515565
2018-03-20Merge branch 'swift-4.x'swift-5.0alpha2Tobias Markmann
* swift-4.x: (44 commits) Test-Information: Builds on macOS 10.13.3 with clang trunk. Change-Id: If50381f103b0ad18d038b920d3d43537642141cb
2018-03-19Update Swift and Swiften changelog for upcoming 4.0 releaseswift-4.0Tobias Markmann
Test-Information: None. Change-Id: I4d89315b084406f44654c4d6a7e2e9c8da0874ce
2018-03-14Fix building with OpenSSL on WindowsTobias Markmann
Define NOMINMAX when building OpenSSL backend on Windows and otherwise you cannot use std::numeric_limits<T>::max. Test-Information: Swiften builds on Windows 10 with VS2015 with the OpenSSL TLS backend. Change-Id: I9621c14426a0af2280cef7ee973abcff2fd0a48d
2018-03-13Tiny fix adding #ifdef to call to logMessage()Peter Burgess
In ChatControllerBase::handleIncomingMessage(), there is a call to logMessage() that should have been wrapped in "#ifdef SWIFT_EXPERIMENTAL_HISTORY", and now it is. Test-information Unit tests still pass, swift still runs as expected. Change-Id: Ia985565d496d73a5c6fed5ce79390b7b0a4b0551
2018-03-12Enable per user installations on WindowsThanos Doukoudakis
This patch will allow the installer to perform per-user installations that doesn't require elevated rights. If the Visual Studio prerequisites are missing, the installer will ask the user if he wants to install them. If the user chooses not to, the installer will deploy the necessary files in the installation folder. Installations for all users (per machine) are still available. Upon upgrading in per-user installs from previous versions, the user can still access the settings that were stored in the registry, but not the settings stored in system-settings.xml. Test-Information: Build and tested with Wix3.11, Qt 5.8 and Visual Studio 2015 on Windows 10 and Windows 7. Tested fresh install and upgrade, for per-machine and per-user installations. Tested the vcredist install and the dll deployment when the installation is not present. Verified that the installer uses the registry settings in per-user installations. Change-Id: I1879e2fb7ee347dab58852eb73d4ddddec15b35d
2018-03-12Ability to set Diffie-Hellman parameters for OpenSSLContextTobias Markmann
Test-Information: Unit tests pass on macOS 10.13.3 with ASAN and Clang 7.0. Change-Id: Ifc2bf2c1b63fca7f3ee43ef61c79a96b8e5ced5f
2018-03-12Add getPeerFinishMessage() method and OpenSSL TLS backendTobias Markmann
This method allows to calculate the TLS finish message of the peer of a TLS connection. It can be used to provide SASL channel binding for TLS servers. Test-Information: Added unit test that verifies the finish messages of a server TLS context with the finish messages of a client TLS context. Tests pass on macOS 10.13.3 with OpenSSL. Change-Id: Ia5ba539e1fb6d1bef6b4436bb59c7384b57a69b0
2018-03-06Update Swift change log due to changes since last RCswift-4.0rc6Tobias Markmann
Test-Information: None. Change-Id: I14b9590ca9ed2263539af200a8e77672db701999
2018-03-05Update the debian and ubuntu distributionsThanos Doukoudakis
This patch updates the build scripts and documentation for newer distributions of Debian (9) and Ubuntu (17.10). Test-Information: Tested packaging scripts on Ubuntu 16.04.4 for Debian stretch and Ubuntu artful distributions. Change-Id: Id567d75bdf3c6abe3cf08a2fd617363a5c1c987f
2018-03-02Fix an issue with help2man and debian packagingThanos Doukoudakis
This patch fixes an issue that occurs with help2man when building the debian package. It appears that swifts output is interpreted as invalid, so we are adding the no-discard-stderr to bypass the error. Test-Information: Tested packaging scripts on Ubuntu 16.04.4 for jessie and stretch distributions. Change-Id: I87f48c720e0132aeaad00e6accd37eee44cdcb7b
2018-02-27Unit test recent outgoing carbons fixThanos Doukoudakis
This patch updates the ChatsManager unit tests to test how carbons messages update the recent chats. This patch is cumulative to bd4115c0db3d898d7de0944d340a9a2f1de4938c commit. Test Information: Updated the carbon messages related unit tests to check how they update the recent chats. Change-Id: I42dfcb812954257280e1c7bd4a533a0211fd59e7
2018-02-27Fix a crash that occurs with closed chat tabs after resizing trellisThanos Doukoudakis
This patch address an issue where, after resizing trellis in a smaller grid size, all closed tabs widgets (ChatWindows, Debug Console etc) that were in a grid cell that got removed, were being destroyed leading to some crashes whenever the widget was used again. Test-Information: Tested the changes in windows with Qt 5.8 and Ubuntu 17.10 with Qt 5.9.1. Tested the client behaviour when opening, closing and re-opening multiple tabs (chat windows, debug console, File transfer overview), before and after resizing the trellis. Change-Id: I923299fe90aa39737d6a3e0ace107018f126880e
2018-02-27Divide differently marked msgs and elide msgs matching roomPeter Burgess
If consecutive message from the same user have differing security markings, then mark them as non continuing to show clearer seperation of messages with different security markings. They are seperated in the same way as consecutive messages from different users are. Further to this, there is a new scheme for displaying message security markings. Messages with a security marking matching the room security marking will not be marked, aside from the first in a series of consecutive messages marked with the same security marking. Unmarked messages in a room with a security marking will be marked as such. This new marking display system can be turned on and off via an xml setting "mucMarkingElision". Test-Information: Unit tests written and passed in MUCControllerTest, runs as expected. Change-Id: Id2b66417f363c49c131d27e738ce786755d65203
2018-02-26Ignore invalid vCard avatar update notificationsTobias Markmann
Test-Information: Tests pass on macOS 10.13.3 with clang-trunk and ASAN. Change-Id: Ice68e93341693349ed5d95dfc062c0a7b07dc673
2018-02-26Make carbons messages update ‘Recents’ listThanos Doukoudakis
This patch fixeses an issue that occurred when sending a message from another device, the carbons messages were displayed on the chat window but were not updating the recents chats list. Test-Information: Tested by logging in from two clients from the same account, and starting a 1-1 chat with another user. Recent chats tab was updated to both clients. Change-Id: I6e961ebbde6a87e4bcbcc49941ab4bacbac4d9d9
2018-02-22Request and display security markings for MUC chat windowsPeter Burgess
Disco#info requested and handled by MUCController on rejoin(). UI display of disco#info implemented for QtChatWindow. Test-Information: Tests written for new MUCController features, and all tests passed. Swift runs with changes and security markings show as and when expected in local isode MUC windows. Change-Id: Ibef4a31f6f8c4cff5f518a66106266a7f961d103
2018-02-21Fix handling of unusual JIDs in room bookmarksTobias Markmann
Test-Information: Added unit tests for bookmark handling for domain-only, bare, and full JIDs. Builds and unit tests pass on macOS 10.13.3. Change-Id: I2855f4e9bdce4aa971575b2bad01e6dd166042bb
2018-02-21Add support for Server Name Indication to OpenSSLContextTobias Markmann
Test-Information: Builds and unit tests pass on macOS 10.13.3 with OpenSSL TLS backend. Change-Id: Ie8f4578c867a2e4bf84484cde4a7cff048566ca4
2018-02-21Add a Sluift example of sending a custom reference payloadEdwin Mons
The example will send a message with a data reference as an example of creating and sending custom children of a message. Test-Information: Reference received on macOS 10.12 Change-Id: If670db0c2ded426e8502a4d331026cf56f6df8df
2018-02-14Fix a crash that occurs when inviting users in a chatThanos Doukoudakis
After inviting people to a chat, and converting to a MUC room, some of the chat window signals were still signaling the original chat controller, that has been destroying, causing a crash. Test-Information: Tested the changes in Windows 10 (64 bit), after triggering the dayChangeTimer, and onContinuationsBroken signal that was causing the crash. Change-Id: I70a80ab2653ed87a1dbea851157d95fb5918913f
2018-02-13Start Chat options greyed out after first useThanos Doukoudakis
This patch will reset the options to add users the default status, whenever the QtUserSearchWindow is reset. Test-Information: Tested the changes in Windows 10 (64 bit) with Qt 5.8.0, in a server environment that does not allow starting a new chat with more than one participant, after closing and reopening the window. Change-Id: Iff6dd75a5751e7e8871069387749b94b789320a9
2018-02-09Move man page generation from package.sh to sconsTobias Markmann
Pass help2man=1 to have scons build man page sources via help2man. Adjusted package.sh to use scons to build man pages. Test-Information: Tested on Ubuntu 16.04 and it generated man page sources when help2man=1. Tested package_all_platforms on Ubuntu 16.04. The build does not fail due to missing man pages anymore. Change-Id: I6c62bc3f666ffd9f926038045672eb6e456082e5
2018-02-02Add basic TLS server support in OpenTLSContextTobias Markmann
This also extends the TLSContext interface with methods required for server mode. Test-Information: Added unit tests that test new functionality in TLSContex. This includes test certificates in the source file that are not for public use. This new ClientServerTest is only enabled for OpenSSL, as other TLS backends do not support the new functionality yet. Tested on macOS 10.13.3 with clang-trunk. Change-Id: I8e43476057608067eb3b9852328aa21cd22974a0
2018-02-02Add support for extracting certificate chain from PEM stringTobias Markmann
Add PrivateKey class to simply encapsulate arbitrary private key data and the corresponding password. This enables easy unit testing by loading the certificate and key from within a test case. Test-Information: Added unit tests for certificate and key generated by OpenSSL. Tested on macOS 10.13.2 with OpenSSL. Change-Id: I1c9ffc3c70f61af65c4f1c48670badaf74b672b7
2018-01-30Modernize OpenSSL crypto backendTobias Markmann
* use std::unique_ptr for memory management of dynamic OpenSSL objects * use an initializer class and static instance of it to correctly initialize/finalize OpenSSL on first use * use enum class instead of simple enum for state * use nullptr instead of NULL Test-Information: Builds and tests pass on macOS 10.13.2 with clang-trunk and ASAN. Change-Id: I346f14e21c34871c1900a8e1ac000450770a0bbe
2018-01-30Change the program name of the windows installerThanos Doukoudakis
During the UAC dialog in windows, the program name appears to have a random value. This patch will make it use "Swift Installer" instead. Test-Information: Tested the changes during installation and uninstallation on Windows 7 (64 bit) and Windows 10 (64 bit) Change-Id: I001ed9e644b123f62b9168115ce06803d2b4bd20
2018-01-29Mark OpenSSL headers as system includesTobias Markmann
This avoids warnings in code out of our control. Test-Information: Less warnings are emitted on macOS 10.13.2 with clang trunk. Change-Id: Ie5f28743000e5a7865fea9677e4429ab0543e378
2018-01-18Return focus to highlight rules dialog after picking a colourThanos Doukoudakis
This patch fixes an issue where the Highlight and notification configuration window was losing focus after picking a colour for some of the highlight rules. Test-Information: Tested the changes and that the highlight rules dialog is no longer pushed back after picking a colour. Tested on MacOS (10.10.5) with Qt 5.5.1 and on Windows 10 with Qt 5.9. Change-Id: I509bb3f79e2f8e121dafe178e52a0aac5271ee1b
2018-01-09Update Swift ChangeLog.md with recent crash fixswift-4.0rc5Tobias Markmann
Test-Information: N/A. Change-Id: I3f93f214fa511660aad64032074b9b022bb0de84
2018-01-09Update copyright year in COPYING and COPYING.gplTobias Markmann
Test-Information: Updated license shows up in UI. Change-Id: I67eb8957973739712718d08f72796d6928817373
2018-01-09Avoid crash with Connector failure race conditionKevin Smith
We were seeing crashes on macOS on a slept laptop overnight, very rarely. The backtraces pointed to accessing a deleted currentConnection in Connector. Eyeballing the code for a path that could trigger this, if the timer fires onTick, queing on the eventloop, and before that event is processed the connection queues onConnectFinished in the event loop, currentConnection will be reset by the timeout tick handling, and will then boom when the handleConnectionConnectFinished is called for onConnectFinished. Test-Information: Eyeballs Change-Id: Iaf4af1450ca8ee13761a33c0dc75f0311d2291b2
2018-01-09Add an log assertion to ConnectorsThanos Doukoudakis
This will check that the connection object is valid when a connector timeouts, and if not log it. Test-Information: None Change-Id: I0af3e88fe1f527c25c4bb6c886668d19167b489b
2018-01-05Fix the debian repository update scriptThanos Doukoudakis
This will use the distro_version instead of the distro_name variable in the script. This fixes an error that was introduced in commit 2b185f0b25aede6e2f40a678647c78bb8e7f8638 Test-Information: None Change-Id: I943a680c49f70310ff525ee60f31b23641ccb2f5
2018-01-04Update Swift Changelogswift-4.0rc4Tobias Markmann
Test-Information: N/A Change-Id: Iece5fe311d57514daffa75bd6b93d174e0adf160