diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-04-18 20:27:42 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2013-04-18 20:27:42 (GMT) |
commit | 603f4622bad15da3b800bab5277091904a47f972 (patch) | |
tree | d5d454b13515cdc1ff290a6d77736dde8c6f2d8f /Swiften/IDN/IDNA.cpp | |
parent | 2a1b34a623e6e4f28481400637a3a99d5f7adc53 (diff) | |
download | swift-603f4622bad15da3b800bab5277091904a47f972.zip swift-603f4622bad15da3b800bab5277091904a47f972.tar.bz2 |
Fix ICU compilation.
Change-Id: I87be125a96f3b9f6755c52c58ba02bb85d945bf9
Diffstat (limited to 'Swiften/IDN/IDNA.cpp')
-rw-r--r-- | Swiften/IDN/IDNA.cpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/Swiften/IDN/IDNA.cpp b/Swiften/IDN/IDNA.cpp deleted file mode 100644 index f2ac8fb..0000000 --- a/Swiften/IDN/IDNA.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2010-2012 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include <Swiften/IDN/IDNA.h> - -#include <vector> -#include <cstdlib> -#if defined(HAVE_ICU) -#pragma GCC diagnostic ignored "-Wold-style-cast" -#include <Swiften/IDN/ICUConverter.h> -#include <unicode/uidna.h> -#elif defined(HAVE_LIBIDN) -#include <stringprep.h> -#include <idna.h> -#endif -#include <Swiften/Base/ByteArray.h> -#include <boost/shared_ptr.hpp> - -namespace Swift { - -std::string IDNA::getEncoded(const std::string& domain) { -#if defined(HAVE_ICU) - UErrorCode status = U_ZERO_ERROR; - ICUConverter converter; - - ICUConverter::ICUString icuInput = converter.convertToICUString(domain); - ICUConverter::ICUString icuResult; - icuResult.resize(icuInput.size()); - UParseError parseError; - int icuResultLength = uidna_IDNToASCII(vecptr(icuInput), icuInput.size(), vecptr(icuResult), icuResult.size(), UIDNA_DEFAULT, &parseError, &status); - if (status == U_BUFFER_OVERFLOW_ERROR) { - status = U_ZERO_ERROR; - icuResult.resize(icuResultLength); - icuResultLength = uidna_IDNToASCII(vecptr(icuInput), icuInput.size(), vecptr(icuResult), icuResult.size(), UIDNA_DEFAULT, &parseError, &status); - } - if (U_FAILURE(status)) { - return domain; - } - icuResult.resize(icuResultLength); - - return converter.convertToString(icuResult); - -#elif defined(HAVE_LIBIDN) - - - char* output; - if (idna_to_ascii_8z(domain.c_str(), &output, 0) == IDNA_SUCCESS) { - std::string result(output); - free(output); - return result; - } - else { - return domain; - } -#endif -} - -} |