summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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
2017-12-20Allow define the debian repositories to uploadThanos Doukoudakis
This patch uses SWIFT_PACKAGE_PLATFORMS variable and only updates the repositories that are defined there. Test-Information Tested the script on Ubuntu 16.04 when the variable is/not defined Change-Id: Ie8f65441f558e3ac663eb8493cedd8c0d2630753
2017-12-19Add Dennis Schridde to COPYING.thirdpartyTobias Markmann
Cleared the list of contributors up a bit. Test-Information: N/A Change-Id: Ic5c818c77fefb2477cc7a3aca6b50d3d06a08285
2017-12-19Allow to override Swiften libdirDennis Schridde
The libdir for Swiften was hardcoded to "lib". With this patch it is possible to override it. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Build with SWIFTEN_LIBDIR=lib64 and observe that files are installed into the desired directory (i.e. /usr/lib64, if SWIFTEN_INSTALLDIR=/usr). Change-Id: I4d844b93a189254b5923f9cd58190b0f6a65b9ac
2017-12-14Will allow defining packaging platformsThanos Doukoudakis
This patch introduces SWIFT_PACKAGE_PLATFORMS variable which defines the platforms that package_all_platforms.sh will package Swift. If not defined, it will default to xenial yakkety jessie sid. Test-Information Tested the script on Ubuntu 16.04 when the variable is/not defined Change-Id: I9ba4fbd68ad18e28cbd2d8c1feb50e6d63e44e06
2017-12-08Update German translationTobias Markmann
Test-Information: New translation shows up in Swift when run with --language de. Change-Id: Idf827a10d52f1ce6be36771543833bf125ef5b65
2017-12-08Update Dutch translationEdwin Mons
Test-Information: Builds on macOS 10.12 Change-Id: I64ec8601487f8383827930961cd4686f89b51586
2017-12-07Remove shortcut for changing trellis layoutTobias Markmann
It is rarely used and conflicts with Polish keyboard layout on Windows. Test-Information: Verified that shortcut is gone and the description text is sensible on macOS 10.13.1 with Qt 5.4.2. Change-Id: I79ede2827e2e5f7b9afcb3bbd2669e5bf83f091f
2017-11-28Update Swift change log and add missing contributor to COPYING.thirdpartyswift-4.0rc3Tobias Markmann
Test-Information: None. Change-Id: I8cad18ea4b6e8a668e129163bbaf158b8141be40
2017-11-27Make the Windows installer remove older versions of Swift componentsThanos Doukoudakis
This patch will make the installer remove each file component, before deploying the new version of the file. This is to avoid potentials issues with the installer, when trying to deploy a new version of a file that happens to have the same version information as the original file. The default behaviour of the MSI installer in a case like this is to skip the deployment of the new file. This issue occurs when Visual Studio gets upgraded, and we need to redeploy 3rd party components of the same version but build with the new version of the compiler. Test-information: Generated an installer and tested fresh install and upgrade from Swift 3.0. Tested with Windows 10 and Windows 7, normal and quiet installations. Verified that the Qt DLLs deployed have the correct VS redist dependencies. Change-Id: I6f68126ee63968aad066901704a409b6ebada14f
2017-11-22Fix Emoji crash on insertionJoanna Hulboj
Swift would crash randomly when user clicked to insert an Emoji. It was happening because we would delete the emojisGrid_ while it was still in use (was closing). Test-Information: Tested on Windows 10 and Ubuntu 16.04. Tested by inserting an Emoji from the Emoji selector. This action does not result in crash any more. Change-Id: I6c0b84ea8969c7f7a4c3bfa700e345cdf63325e6
2017-11-10Update German translationTobias Markmann
Test-Information: Verified translation using `--language de` command line flag. Change-Id: I150ad5be2d79f7aa728a4c04dd3b284f8b2fb220
2017-11-10Fix typo in commentTobias Markmann
Test-Information: None. Change-Id: I6c97c2e235c51d726da3c2f96cbf6ed24e6c25cc
2017-11-09Fix loading translations when detected automaticallyTobias Markmann
Test-Information: Tested with Dutch and German user accounts on Mac OS X 10.10. Change-Id: I9c6d5fdac19abcf4db98034dbd6620732f0caba1
2017-11-08Update Dutch translationEdwin Mons
Updated for 4.0-rc2. All vanished sources have been removed from the translation as well. The license has been updated to BSD. Test-Information: Looks good on macOS 10.12, reporting shows no missing texts. Change-Id: Id87f7e97332536c367fea6ed231863fed8e22e46
2017-11-07Analytics for translationsEdwin Mons
Adds an XSLT that can check coverage of ts files. Test-Information: Runs on macOS 10.12 using libxml 20904, libxslt 10129 and libexslt 817 Change-Id: Ia7e66f3ae2e00010b03056db7578f7a2529250c8
2017-11-07Add missing Qt translatable strings to QtStrings.hTobias Markmann
Strings in the context menu of the chat input and the dialog buttons in the highlight editor are now translatable. Test-Information: Tested on macOS 10.13.1 with Qt 5.4.2. Tested with a newer upcoming German translation file. Change-Id: Ie2c5ec1d9615bfe5ac69dad7df3c96a6f1600225
2017-11-07Enable translatability of QtSoundSelectionStyledItemDelegateTobias Markmann
This adds a missing Q_OBJECT macro. Test-Information: Build and tested on macOS 10.13.1 with Qt 5.4.2 that with `--language de` passed to Swift the German translations are shown in the highlighting editor. Change-Id: Ibe9975786f5a228fb14b61c01ce71db06354762b
2017-10-30Sluift: Add support for Lua 5.3Roger Planas
This patch adds support for Lua 5.3, while keeping support for Lua 5.1 (a build with the bundled Lua succeeds) Test-information: Builds cleanly on Lua 5.1, 5.2 and Lua 5.3. Tests that make use of Sluift work with both Lua 5.2 and Lua 5.3 Change-Id: I4cbe2eb09ec8c753d8624047f5456be1de72c679
2017-10-26Sluift: Add shortcut for get disco_info to componentsRoger Planas
disco_info shortcut was available to clients but not to components. This patch addresses this. Test-information: Used component:get_disco_info and data is retrieved successfully. Change-Id: Ie8d80e3180ca400e5694fd581f60f08511e36ca4
2017-10-19Upgrade Breakpad to latestThanos Doukoudakis
This commit will upgrade breakpad to version 1.0.86 (I9957f27cd134f862b9831e4b1d90f8a014eb37b6) from https://chromium.googlesource.com/breakpad/breakpad Added a script(BreakpadSwiftCleanup.sh) that remove files from Breakpad's repository that are not used by Swift. This commit also re-applies the changes that were introduced in commit 7f0fe603be200c09c74cf9cc295a972f3c3dbdfd, that change the minidump filename format to include version and date Test-Information: https://travis-ci.org/google/breakpad/builds/283789304 https://ci.appveyor.com/project/vapier/breakpad/build/job/1bu73ysmcfpwg9e4 Tested by adding some code that forces a crash to the client on Windows 10 with VS2015. Verified the name and contents of the generated crash dump. Change-Id: Ied9e74088e43137845edc09d070c2c27494aeade
2017-10-13Don't require servers to advertise an SSO domainKevin Smith
This doesn't change the behaviour where domain is advertised, but does mean that SSO can be attempted where the hostname isn't advertised, where previously it would be refused. Test-Information: Light testing (not by me) against M-Link not advertising hostname. I think this is sufficient, given this is an experimental feature, hidden behind a config flag, and this only extends behaviour, rather than changing previously supported paths. (The tested version was with a ternary instead of value_or) Change-Id: I381fe23ab152486b195acff5858bf0a705b86b59
2017-10-02Fix Code According to New clang warning (-Wobjc-messaging-id)Tobias Markmann
Test-Information: Builds and test pass on macOS 10.13 with clang-trunk. Change-Id: I7a515a003602a983681f85374a8a77dc953f533d
2017-09-24Fix 'Start chat...' dialog disappearing after adding participantTobias Markmann
Qt deprecated Q_WS_* defines to detect the windowing system at compile time. Changed the code to use Q_OS_MAC to enable the workaround for macOS. Test-Information: Tested with Qt 5.4.2 and Qt 5.8.0 on macOS 10.12.6. Change-Id: I49953f084ad6003c08b02550741dc16ef5df21fe
2017-08-16Fix inverted logging assert conditionThanos Doukoudakis
This patch will fix a bug where SWIFT_LOG_ASSERT was logging the wrong information. Test-Information: Tested the logging assertion on Windows 10 (Qt 5.7) during the client exit. Change-Id: I7bffbe52a0b28c7577b1bad165313ea64a3f8e46
2017-08-15Force a build to stop if signing of the packages fails.Thanos Doukoudakis
This patch will make the build attempt to sign the package 3 times. If none of the attempts are successful, the build will stop and flag the error. Test-Information: Tested packaging on Windows 10 (Qt 5.7), when the package signing succeeds (signed installer package), fails (build stops) or not required (unsigned installer package). Change-Id: Idf1f708dda50e67e54866ca598cc5160e4ea76eb
2017-08-15Improve Swift’s interactions with Smart CardsThanos Doukoudakis
This patch improves logging and refactors SchannelContext and CAPICertificate classes, to improve logging and how Swift interacts with smart cards. Test-Information: Tested on Windows 10 (Qt 5.7) Change-Id: Ic4d306beafb9e5d253731769f222e6949995d5e7
2017-08-08Enable log information export to a fileThanos Doukoudakis
This patch introduces the “logfile” argument to the client, which can be used to specify a file path for a log file, where all logging information will be stored. Test-Information: Tested on windows 10 and Ubuntu 17.04 Change-Id: I6a2f14585a72f25e7e78d79cb633e1ddc4d43c3b
2017-07-26Workaround Boost bug to prevent crash in recents loadingThanos Doukoudakis
Boost 1.64 introduced a regression where boost::optional deserialisation could lead to a crash when loading the recent chats. This fix updates the way we serialise the ChatListWindow::Chat and HighlightAction classes to avoid these errors. A flag has been added, to allow the use of the erroneous version of the library during the build. During runtime if needed, the client will skip loading the data, to avoid any unpredicted behaviour. Test-Information: Tested on windows 10 with different versions of boost 1.56(bundled), 1.63, 1.64, 1.65 and Ubuntu 17.04 with versions 1.56(bundled) and 1.64. Added unit tests for the serialisation ChatListWindow::Chat class. Change-Id: Idc5c3a6cfd92272b8eab2d77e243dda743803a31
2017-07-24Add Channel Join and Leave Capability to MIXTarun Gupta
Add UpdateSubscription feature for subscribing to additional MIX nodes Add Joining a channel with a preference form Add requesting user preference form and updating the preferences License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Tests added for joining and leaving a channel as in XEP-0369, which passes. Tests also added for updating subscription, joining channel with preference form and requesting user preference form as in XEP-0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: Ibc2737f6154eeee1a85e98cb5f80c8bdbad35dcd
2017-07-18Add MIXUpdateSubscription Element, its Parser and SerializerTarun Gupta
Updates MIXJoin Element list of subscriptions to an unordered_set. Remove redundant MIXSubscribe Element. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIXUpdateSubscription Parser and Serializer based on examples in XEP 0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: Ied06269cf329b4fdffdde4ace67ebffa4089fbde
2017-07-18Replace assert() with SWIFT_LOG_ASSERT for loading fontsTobias Markmann
Test-Information: Builds on macOS 10.12.5 with Qt 5.4.2. Change-Id: Ifc49064c6a8ca2f0be52d8ddd8f0c7791230430f
2017-07-14Add MIXRegisterNick Element, its Parser and SerializerTarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIXRegisterNick Parser and Serializer based on examples in XEP 0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: I80796db9d540c58296afa3454f29e1fb81d04615
2017-07-14Get rid of plural(s)Edwin Mons
The stock test reporter doesn't use test(s), but test or tests based on the actual number printed. This brings the CppUnitTestResultPrinter more in line. Replaced two fflush(stdout)s with their C++ counterparts on std::cout. Test-information: Unit tests pass on macOS 10.12 Change-Id: Id9fb1f932d0d68cbc8e019f7748c7ecc3623556a
2017-07-13Fix LRUCache documentationTobias Markmann
Doxygen raised warnings for referencing unknown classes and template variables it cannot deal with. Adjusted the comment to just format them instead of referencing. Test-Information: Ran ./scons doc=1 and verified that doxygen did not raise warnings anymore. Change-Id: I8927195457bbaf92066591f24e536e9b48a04808