summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-11-13Support application-supplied loggingEdwin Mons
This adds a method to set a logging callback. If such a callback is set, all SWIFT_LOG calls will invoke this callback instead of writing to either stderr or the swift logging file. Test-Information: Updated unit tests pass. Checked that logs generated by Swift and Sluift (which do not set the callback) resulted in logging in the expected location. Change-Id: I0eb2a1057aa77839e1b8d5f320205eb9d5fdc253
2018-11-08Consistently use unsigned short for network portsEdwin Mons
Network ports are now consistently stored as unsigned shorts, apart from the options and user interface, where -1 is still used to denote the use of default ports. Test-Information: Unit tests pass on macOS 10.13 and Debian 9 On macOS: tested the UI with various proxy and manual ports, behaviour as expected. Change-Id: I7a65f40083022887aa30ed7b21eadc56d0c52be1
2017-02-22Add LRUCache utility class to SwiftenTobias Markmann
This implements a simple lookup cache with least recently used replacement strategy. This also adds Boost.MultiIndex from version 1.56 to 3rdParty. Test-Information: Added some unit tests for LRUCache, which pass on macOS 10.12.3 with clang-5.0 Change-Id: I0567945b1197d3fe786bf9d82fdb5e755743b975
2017-02-21Add checks to verify if the input data is a valid XML/XMPPJoanna Hulboj
Test-Information: Unit tests pass OK. Change-Id: Ibd7897c1c1249af7ac60a6549afd4c2362fcf0c0
2017-01-11Integrate googletest and googlemock libraries to 3rdPartyTobias Markmann
googletest and googlemock from release 1.8.0 have been copied to the 3rdParty folder. With this commit tests for Swift project can also written using googletest and googlemock APIs. The test runners will execute test suites written to either test library. Passing —-xml to a test runner will now create two test report XML files, namely $programName-report.cppunit.xml and $programName-report.gtest.xml. The ByteArrayTest has been converted to use googletest instead of googlemock to serve as an example and test the integration. Test-Information: Build all tests via ‘./scons test=all’ and verified all tests are run. Build all tests via ‘./scons test=all checker_report=1’ and verified that two report XML files are generated per test runner executed. Change-Id: I81a9fb2c7ea5612fc1b34eef70ed7e711bfeea81
2016-06-14Add support for URLs with IPv6 addresses in Swift::URLTobias Markmann
Test-Information: Added unit tests and test cases from RFC 2732. All tests pass on OS X 10.11.5. Change-Id: Ic76e57985109912871c05d12253f73d3653bd7a3
2016-03-31Convert tabs to 4 spaces for all source filesTobias Markmann
Removed trailing spaces and whitespace on empty lines in the process. Changed CheckTabs.py tool to disallow hard tabs in source files. Test-Information: Manually checked 30 random files that the conversion worked as expected. Change-Id: I874f99d617bd3d2bb55f02d58f22f58f9b094480
2016-03-30Apply consistent #include grouping and sorting styleTobias Markmann
Changed "" style includes to <> style. Test-Information: Build with Clang 3.9.0 and ran all tests on OS X 10.11.4. Change-Id: Ic05e53f2e5dba39cc1307b116fc5f17b62ab9eb8
2015-09-21Stop throwing out of range exception from dateTimeToLocalStringTobias Markmann
The dateTimeToLocalString uses boost functions that may throw an out of range exception for times earlier than 1970. This commit caches this exception and just returns an empty string in this case. Test-Information: Added a unit test to verify this behavior. Change-Id: I05eb17605331e14d9eac04fbfd286362e7d4eb46
2014-12-15Update Copyright in SwiftenKevin Smith
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
2013-05-17Fixed unicode path handling.Remko Tronçon
- Use boost::filesystem::path consistently for referring to files. - Use boost::filesystem streams for I/O, such that paths are always handled correctly. - Use stringToPath and pathToString for conversion between strings and boost::filesystem::path, to ensure we have consistent unicode handling across platforms and environments. The default constructor and string conversion uses platform-dependent encoding, depending on the global locale set in the application, which causes problems. So, unless you are in platform dependent code, the default constructor and string() function should not be used. When constructing paths from other paths (e.g. using operator/), also use stringToPath (instead of string arguments) if the path can contain unicode characters. Change-Id: If286bd9e71c8414afc0b24ba67e26ab7608ef6ea
2012-11-13Allow BOSH URL setting again.Kevin Smith
Also fixes use of getPort() so that HTTP headers aren't all for port :1. Change-Id: I8ead8a7f4826d1105bf1feafea21e6139e803de7 Resolves: #1178
2012-10-05Strip leading '/' from BOSH paths.Remko Tronçon
Resolves: #1167
2012-09-17Fixed URL parsing/serializing.Remko Tronçon
Resolves: #1157,#1158
2012-09-15Added URL parser.Remko Tronçon
2011-10-14Resurrecting simple ID generator.Remko Tronçon
2011-06-09DateTime refactoring.Remko Tronçon
Moved DateTime serializing into Base. Fixed a bug when XEP82 dates are non-UTC. Added unit tests.
2011-05-05Replace ByteArray by typedef.Remko Tronçon
2011-04-30Replace #icnlude "" by #include <> in Swiften.Remko Tronçon
2011-04-18Chop off trailing \0 in ByteArray::toString().Remko Tronçon
2011-04-18Added ByteArray unit tests for null termination.Remko Tronçon
2011-03-12Allow empty hashes in cache.Remko Tronçon
2011-03-12Make ByteArray an std::vector<unsigned char>.Remko Tronçon
2011-02-14Removed Swift::String.Remko Tronçon
2011-02-14String refactoring.Remko Tronçon
Removed String::getLength(). Rewrote String::removeAll().
2010-08-19Added getExecutablePath().Remko Tronçon
2010-04-08Added copyrights to Swiften.Kevin Smith
2010-03-28Moving submodule contents back.Remko Tronçon
2010-03-28Removing submodules.Remko Tronçon
2010-03-28Moved Swiften to a separate module.Remko Tronçon
2009-12-22Add a PreviousStatusStore.Kevin Smith
2009-09-30Fix ByteArray::getData() when bytearray is empty.Remko Tronçon
Also did similar fix for ByteArray constructor.
2009-08-22Fix expanded tab characters.Remko Tronçon
2009-08-16Remove autoconf/make files.Remko Tronçon
2009-07-31Add String::split().Remko Tronçon
2009-06-22Use lowercase app name for application dir on Un*x systems.Remko Tronçon
2009-06-01Import.Remko Tronçon