Age | Commit message (Collapse) | Author |
|
Explicitly disconnect from remaining resources in the
ChainedConnected and ClientSessionStanzaChannel destructors, so
the event loop will not call the signal handler methods on a
freed object.
Test-Information:
Repeating the test case of creating a Swift::Client instance,
connecting it and then deleting it after a random time below one
second.
On Mac OS X 10.9.5 running this test case causes two ASAN
heap-use-after-free errors and with this patch the errors are
gone.
Change-Id: I3e48150c3633f4076ca9172aad9e85ba389df950
|
|
This patch introduces a 'set_certificate' API for Sluift
clients, which it is just a wrapper around Swiften's
Core client setCertificate.
Test-Information:
Generated different user certificates for a user (trusted,
untrusted, invalid, expired...) and set M-Link to enable flag
'tls_require_client_cert'. Calling 'set_certificate' with these
certificates behaved as expected, either letting the Sluift
client to authenticate or not.
Also tested caling 'set_certificate' with no parameter, and the
certificate was successfully cleared (that is, client would no
longer be able to connect)
Change-Id: Ieb56d59f7f7c1c7027f0fe56905fb83ac3b25298
|
|
Now Client allocates a FileTransferManager in its ctor and frees
it in its dtor, like all the other resources of the Client class.
This fixes an ASAN crash in the use case where you do a file
transfer, go offline and online again and try to start another
file transfer.
Test-Information:
Tested that the mentioned use case does not crash anymore,
that file transfers still work, and that FileTransferTest still
passes.
Change-Id: Iddbcd8522af7df528bdc2b030fe616ad3f0c4701
|
|
A recent commit introduced resolving of S5B proxy domain names
to their IPv4 and IPv6 addresses. With that a proxy identified
by a JID can have more than one host and we try them in parallel
until the first succeeds.
The old code just handled one host per proxy JID and a failed
IPv6 attempt would override the succeeded connection. The code
uses shared pointers and the succeeded connecting is deallocated
and disconnected when it is replaced with the failing IPv6
connection.
The result is the proxy server complaining that we are not
connected as we try to activate the proxy stream.
This commit changes the the proxy management to handle multiple
connections per proxy JID. Failing connections are removed from
the proxy sessions data structure. With the first succeeding
connections, others are stopped and also removed.
Test-Information:
Tested on Linux (Elementary OS 0.2) with
"Swiften/QA/FileTransferTest/FileTransferTest 4 4", which forces
the use of SOCKS5 bytestream proxy.
Change-Id: If3071c3d058e1040556bb72702bf83f4f5f25334
|
|
Test-Information:
This LSAN reported leak is gone with this fix.
Change-Id: Ib25fdfb7f4a82f62cd3f82ddb99f45618ea72ea9
|
|
Reported by LSAN.
Test-Information:
Detected by running FileTransferTest with LSAN on Linux.
The leak reports for the allocations in FileReadBytestream and
FileWriteBytestream are gone with this fix.
Change-Id: I32711990eca0c9a2a2982837cfac38cb11a28caa
|
|
Change-Id: I8e441ea2f2507f118e740373a8980357e8397492
|
|
Change-Id: I7e32d655039f5495759705a9341b4f8b73ee5a06
|
|
Adds InBandRegistrationPayloadParserTest, IBBSerializerTest, IsodeIQDelegationSerializerTest.
Adds UserTune Parser and Serializer.
Adds UserLocation Parser and Serializer.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
All tests passes.
Change-Id: Ida220574c33ca9ee6f2aa8a2f4fba4c68e3fec60
|
|
The delegate was not correctly freed and was leaking across
login/logout sessions.
Setting the parent of the delegate during initialization, so it
will be freed by Qt when the QtUserSearchWindow is freed.
Delegated the deallocation to Qt, because it has to be freed
after the widget that uses the delegate is freed.
Test-Information:
The leak was reported by Valgrind. Verified with Valgrind that
this commit fixes the leak and is not reported anymore.
Change-Id: Ib48d2628577433bce82103b3f14cbd11d733b7ac
|
|
Check that checker_ and highlighter_ are initialized before
calling them.
A crash report indicated a crash calling getMisspelledPositions()
on highlighter_ from QtTextEdit::contextMenuEvent(). This fix
should prevent this call to cause a crash.
Test-Information:
Verified that spell checking still works on OS X.
Change-Id: Idae37c1f9e2d1a0d0f64da251aa6778f2e9b47a2
|
|
Test-Information:
Checked that the button has the new label.
Change-Id: Ic0e00e479de01decd23e14477d0bf34950ab6160
|
|
The 'Clear all' button in the file transfer overview window
was only present in the UI, without any logic behind. That's fixed now.
Test-Information:
Send a file in between two Swift instances. Verified that the button is
enabled/disabled at appropriate times and works as expected if pressed.
Change-Id: Ib92621cba479683ade8d815ce5ace9768449a499
|
|
Test-Information:
Send a file from one Swift instance to another. The UX is similar to
that of a MUC invite, clicking the notice will bring the relevant chat
in front.
Change-Id: Ief3cd7371ae01b2b38b6d1af36189df961eacef4
|
|
Test-Information:
Detected with valgrind-3.10.1 on OS X 10.9.5 and verified they are
gone with this fix.
Change-Id: I8cab09efd2227a8d43fa77bd2c315bd9b67435fb
|
|
Swift did not remember the correct scrolled-at-bottom position for
the current chat view after it added/updated file-transfer UI to the
chat view.
Test-Information:
Tested with two Swift instances (one with the fix, one without) and
send files in both directions. The instance with this fix, scrolls
down along with new messages as they are recevied if the chat view
is scrolled to the bottom.
Change-Id: Ia9afa68254c3add5f7677b1f4b7ed3c7e1edcf6f
|
|
The code passed local time to the B2QDATE macro. The B2QDATE macro
however requires its input to be in UTC.
Test-Information:
Tested a file-transfer and MUC invite between two Swift instances.
Change-Id: I3a44f35d804b4029a6ff80548a6cb8a1d3edc27e
|
|
This is an attempt to fix crash reports with a segmentation fault on
call of onLocalTransportCandidatesGenerated().
Test-Information:
Tested that file-transfer still works.
Change-Id: I415be0d8bc5fa15dcd68d0794ee2478a0d836f27
|
|
Show the user the collection of possible file transfer candidates
after pressing the 'Start' button for a file transfer. Previously the
buttons remained in the UI giving no feedback to the user at all. If
no UPnP/NAT-PMP device is present, it this stage can take a couple
seconds to timeout and move on to the next stage.
Furthermore this commit adds documentation for the different states
in the ChatWindow::FileTransferState enum.
Test-Information:
Tested this in a network environment with no UPnP/NAT-PMP device
between two Swift instances.
Change-Id: I76ec6e641a2acd683938fe2d8f542d023a244145
|
|
The button is shown after the 'Transfer completed successful.'
message and asks the desktop environment to open the file with the
default program.
Test-Information:
Send a file to another Swift on OS X 10.9.5 and verified that it opens
the file on button click.
Change-Id: I602e534ef07a119247cbf979e13551be7771880c
|
|
Add a hidden option to enable single sign on. When that is enabled, ensure that
the user only enters the domain name and that the JID is constructed from the
Windows log-on credentials.
Test-information:
Tested on Windows.
Unit tests pass.
Change-Id: Ia5592a3893f0807a3801b515c8fcddb580c9ef8d
|
|
This patch uses the GSSAPI authenticator on Windows if the server advertises it
and the client requests it. (The user is not able to request it in the UI yet)
Also sends the manual port to the GSSAPI authenticator to construct the SPN if
a non-default port is used.
Test-information:
Tested on Windows using WIP code. Tested both on TLS & without.
Unit tests pass.
Change-Id: I9a9ad9604fe084d5fb2003b7a91174a9512e2eec
|
|
Connect FileTransfer::onStateChanged signal earler to slot in
FileTransferController, so the slot will be called for state changes
that occur before a transfer started.
Test-Information:
Tested with two Swift instances and cancelling the sender side and
receiver side. Without this patch the receiver side UI does not change
if the receiver side cancels the transfer.
Change-Id: I1d4d3e1ac78689a16120bfa9ccdec30ab1191ee3
|
|
Test-Information:
Added unit test that checks for the expected behavior.
Change-Id: I4079bdc1182af466eedd2496b9837e024f14acb2
|
|
If the S5B proxy lookup result has no direct IP address listed the
name is resolved using DNS. This change will create a proxy result
per resolved result address and not only the first result address.
Test-Information:
Verified the candidate list contains both entires for a proxy name
that resolves to an A and an AAAA record.
Change-Id: Iec21ff90af981030ff49fb53803d88a59694767c
|
|
ASAN reported heap-use-after-free because if the timer is running
and an instance is freed, the signal of the timer is still emitted and
connected slots are called.
Test-Information:
Tested that the ASAN report wents away with this fix.
Change-Id: Id785737c4c015e5c638e9d9f6419d740d6cf83b9
|
|
Test-Information:
Still builds
Change-Id: I93cd349364093eae320104b5b551c25da47b1d74
|
|
Due to missing signal connection and a copy'n'paste bug, Swift did not
wait for port forwarding/public IP detection before emitting the list
of local candidates. This is fixed now.
The signal is automatically disconnected when the file transfer
is finished and s5bServerPortForwardingUser_ is freed.
Test-Information:
Send a file between two Swift instances and verified log output.
Change-Id: I6530a7ac1cbf6941061bd99aa3f3b0624ebc984c
|
|
Introducing SWIFT_NETWORK_TEST_IPV4 and SWIFT_NETWORK_TEST_IPV6 for
the host addresses used in BoostConnectionTest.cpp.
Passing these variables and ASAN/LSAN_OPTIONS for memory leak
detection when calling the test from SCons.
Test-Information:
Tested on Elementary OS with correct available hosts and unavailable
hosts. In both cases the behavior is the same as before.
Change-Id: I24128c766642c5a2ee273f7c11624525ae33e270
|
|
Test-Information:
Tested on Elementary OS with a LLVM/Clang 3.7.0 build. With this patch
the reports for the fixed locations are gone.
Change-Id: I0260fc85ad662335a69ace331f51ebe2f864ef97
|
|
Test-Information:
Not applicable.
Change-Id: I1620be8361c1b70b365011ac7f0ec6ac11dbe76f
|
|
Rooms in the recent chats list and bookmarks can be entered by double
click if the user is offline. They are joined when the user goes
online again.
Test-Information:
Tested by going offline via the presence menu and then entering rooms
via recent chats and bookmarks.
Change-Id: I8c3eadd29c3353c2cf5f04f53b71ef7ad67a5c05
|
|
Previously QtVCardWidget would work on a shared copy of a VCard and
modify the shared version. Now when setting the vCard on the widget
it creates its own copy and works on that.
The ProfileController holds a reference to the VCard it sets on the UI.
If the server rejects an update it can reset the UI to this VCard.
Test-Information:
Tested against a XMPP server that rejects all vCard updates
(mod_readonly).
Change-Id: Iaa8eed6406f2dc6cc7ac5434194a7dae4f879b33
|
|
This patch adds an option 'disconnectOnCardRemoval' to system-settings.xml which
when set to false allows the user's session to stay connected if the smartcard
is removed. The default value of this option is true if it is not specified.
Test-information:
Tested on Windows using NIST smartcards.
Tested true and false values set for this option in the file and also when
option is not specified (true).
Unit tests pass.
Change-Id: I7e421b4153ff7d3000f41999add20d339076c96e
|
|
Test-Information:
Tested on Elementary OS 0.2.
Change-Id: Ieae4fc2a2c6fdfaaac9895153b09c9504ef71495
|
|
Test-information:
Tested on Windows using WIP code.
Unit tests pass.
Change-Id: I766294e57dc6374830b865f3e57b07b67e7d2fe2
|
|
When the card is reset in shared mode (which is the mode we use), an application
trying to access certain commands will be returned the value SCARD_W_RESET_CARD.
When this occurs SCardReconnect() must be called. This wasn't done before so
this patch fixes it.
Also provides more logging for SCard function returns.
Test-information:
Tested on Windows using NIST smart cards.
Before the fix, the Card Removed Error was seen often even after the initial
connection was established. After the fix, the reconnect attempt is done so the
error is not seen.
Also verified that if a card is removed deliberately, then the user is logged
out.
Change-Id: I94748ab9ff944a79de655646e1e06a8b61776f4b
|
|
Test-Information:
Building on a system without Qt now says that the application
is all that isn't compiled. Swift/Controllers still compiles if requested
(as before).
Change-Id: I24631f6ba2bf3475a1a6456207c1da94f1b3f1c0
|
|
Test-information:
Tested on Windows using WIP GSSAPI code.
Unit tests pass.
Change-Id: I21f8f637480a21a014ec172431dd8d4a01a11620
|
|
In RFC 6120, there are only 2 places where "=" is allowed - in the initial
client auth and in the final server success response.
While testing challenge response exchanges in Kerberos, it was seen that Swift
was adding an '=' in other empty responses. This patch fixes it by sending an
empty response instead of an '='.
Test-information:
Tested on Windows using a WIP GSSAPI authentication exchange with M-Link.
Change-Id: I1f82bddbd1380361cbe43e45a2804156249582ae
|
|
Test-information:
Tested on Windows using WIP GSSAPI code.
Unit tests pass.
Change-Id: If872863d6a8b5a164f8ebec4f88e9939b4e73c62
|
|
This patch creates and passes on an optional boost::system::error_code variable
which contains more error info which can be displayed in case of an error.
Test-information:
Tested using WIP code on Windows.
Change-Id: I285b8aec5e9c00d3a8e0d8cc0d5e7b4c5d94c099
|
|
Test-information:
Verified with M-Link.
Unit tests pass.
Change-Id: Ic675c8d7cd70e01be61c51c0280e1d7208b364ba
|
|
The tool had syntax errors (missing subprocess. in front of PIPE) and
SCons errors (missing conf.Finish() calls).
Test-Information:
Tested on Arch Linux 1.4.
Change-Id: Ibab23e1dc776ee9fe96de45221c4fb9659f4a185
|
|
Clang raises a warning in non-experimental builds because the full
type of HistoryStorage is not known and it tries to delete an
instance (even though a null ptr) in the dtor.
Test-Information:
Tested on OS X 10.9.5 with Clang (Apple LLVM version 6.0).
Change-Id: I8a06890967427af21e11e077e9ac59b67bdb810c
|
|
Some platforms, e.g. KUbuntu, provide a wrapper around Qt's commands
that allow easy switching between different Qt versions. With this
change SCons will execute the found moc tool and check whether it works
or not.
Test-Information:
Tested with correctly installed Qt and uninstalled Qt on KUbuntu 14.04.
Change-Id: I88f0a36af462e909829c30115aa5481abdcd3ac6
|
|
Template classes cannot have SWIFTEN_API annotations as with annotation
code for instantiations of the template are expected to be in the DLL
which cannot be guaranteed for any user type. With the complete
implementation in available in the header it is not needed because
3rdParty Swiften users can instantiate an implementation as needed.
This also conditionally includes SQLiteHistoryStorage.h conditionally
in MemoryStorages.cpp, as otherwise the linker will expect an
implementation of SQLiteHistoryStorage in the DLL. However, it is only
built into the DLL if experimental features are turned on.
Test-Information:
Tested with experimental=on/off and swiften_dll=on/off.
Change-Id: Ieec85675c167ec34cffd4745ac854a5949fb2037
|
|
Test-Information:
None.
Change-Id: Ie2a5f9430aeb849219f4bca64aa3d1871bc17dc5
|
|
HighlightRule did not consider keywords in its isMatch() routine.
MUCController only triggered possible HighlightActions if it was a
direct 1-to-1 MUC message or an impromptu chat message.
Both issues are fixed.
Additionally fixed the HighlightRuleTest. It had some wrong assertions
related to rules being case insensitive by default and keywords match
inside longer words by default.
Test-Information:
Tested with a highlight rule that highlights text and tested that
sound actions are executed if the text is highlighted. Additionaly
verified that other behaviour (own nick mentions, direct 1-to-1 messages)
have their potential sound actions still executed.
Change-Id: Ia922a1ff38c66f6458d28a18a8cdde10e821f83d
|
|
Refactored the code to handle the following cases nicely:
- no copyright for current user present yet
- outdated copyright for current user present (with and without range)
- copyright present and up to date
Test-Information:
Tested with SWIFT_LICENSE_CONFIG set to "Isode Limited|default".
Change-Id: I4df475f7ecd55aebe892411b2323da50fcbca525
|