diff options
| author | Edwin Mons <edwin.mons@isode.com> | 2014-05-23 09:01:23 (GMT) | 
|---|---|---|
| committer | Swift Review <review@swift.im> | 2014-06-22 12:35:26 (GMT) | 
| commit | bd7f30aec53fc776be678577dbe4f9afec5898a6 (patch) | |
| tree | 66afad4382dc16f7405a856dd0b5abc38db51653 /Sluift/Helpers.cpp | |
| parent | 1eb14b6bde145ca54ac9b981df339fb8c56d3930 (diff) | |
| download | swift-contrib-bd7f30aec53fc776be678577dbe4f9afec5898a6.zip swift-contrib-bd7f30aec53fc776be678577dbe4f9afec5898a6.tar.bz2 | |
Sluift component support
Change-Id: Ib8af01c04c866e198c04d35236dea4da464c9116
Diffstat (limited to 'Sluift/Helpers.cpp')
| -rw-r--r-- | Sluift/Helpers.cpp | 62 | 
1 files changed, 62 insertions, 0 deletions
| diff --git a/Sluift/Helpers.cpp b/Sluift/Helpers.cpp new file mode 100644 index 0000000..29e2b04 --- /dev/null +++ b/Sluift/Helpers.cpp @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2013-2014 Kevin Smith and Remko Tronçon + * Licensed under the GNU General Public License. + * See the COPYING file for more information. + */ + +#include <Sluift/Helpers.h> + +#include <Swiften/Client/ClientError.h> +#include <Swiften/Component/ComponentError.h> + +using namespace Swift; + +template<class T> std::string Swift::getCommonErrorString(T& error) { +	std::string reason = "Disconnected: "; +	switch(error.getType()) { +		case T::UnknownError: reason += "Unknown Error"; break; +		case T::ConnectionError: reason += "Error connecting to server"; break; +		case T::ConnectionReadError: reason += "Error while receiving server data"; break; +		case T::ConnectionWriteError: reason += "Error while sending data to the server"; break; +		case T::XMLError: reason += "Error parsing server data"; break; +		case T::AuthenticationFailedError: reason += "Login/password invalid"; break; +		case T::UnexpectedElementError: reason += "Unexpected response"; break; +	} +	return reason; +} + +std::string Swift::getErrorString(const ClientError& error) { +	std::string reason = getCommonErrorString(error); +	switch(error.getType()) { +		case ClientError::DomainNameResolveError: reason += "Unable to find server"; break; +		case ClientError::CompressionFailedError: reason += "Error while compressing stream"; break; +		case ClientError::ServerVerificationFailedError: reason += "Server verification failed"; break; +		case ClientError::NoSupportedAuthMechanismsError: reason += "Authentication mechanisms not supported"; break; +		case ClientError::ResourceBindError: reason += "Error binding resource"; break; +		case ClientError::RevokedError: reason += "Certificate got revoked"; break; +		case ClientError::RevocationCheckFailedError: reason += "Failed to do revokation check"; break; +		case ClientError::SessionStartError: reason += "Error starting session"; break; +		case ClientError::StreamError: reason += "Stream error"; break; +		case ClientError::TLSError: reason += "Encryption error"; break; +		case ClientError::ClientCertificateLoadError: reason += "Error loading certificate (Invalid password?)"; break; +		case ClientError::ClientCertificateError: reason += "Certificate not authorized"; break; +		case ClientError::UnknownCertificateError: reason += "Unknown certificate"; break; +		case ClientError::CertificateCardRemoved: reason += "Certificate card removed"; break; +		case ClientError::CertificateExpiredError: reason += "Certificate has expired"; break; +		case ClientError::CertificateNotYetValidError: reason += "Certificate is not yet valid"; break; +		case ClientError::CertificateSelfSignedError: reason += "Certificate is self-signed"; break; +		case ClientError::CertificateRejectedError: reason += "Certificate has been rejected"; break; +		case ClientError::CertificateUntrustedError: reason += "Certificate is not trusted"; break; +		case ClientError::InvalidCertificatePurposeError: reason += "Certificate cannot be used for encrypting your connection"; break; +		case ClientError::CertificatePathLengthExceededError: reason += "Certificate path length constraint exceeded"; break; +		case ClientError::InvalidCertificateSignatureError: reason += "Invalid certificate signature"; break; +		case ClientError::InvalidCAError: reason += "Invalid Certificate Authority"; break; +		case ClientError::InvalidServerIdentityError: reason += "Certificate does not match the host identity"; break; +	} +	return reason; +} + +std::string Swift::getErrorString(const ComponentError& error) { +	return getCommonErrorString(error); +} + | 
 Swift
 Swift