summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/JID/JID.cpp')
-rw-r--r--Swiften/JID/JID.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Swiften/JID/JID.cpp b/Swiften/JID/JID.cpp
index a31c19f..fff88e9 100644
--- a/Swiften/JID/JID.cpp
+++ b/Swiften/JID/JID.cpp
@@ -111,7 +111,12 @@ void JID::nameprepAndSetComponents(const std::string& node, const std::string& d
111 111
112 try { 112 try {
113 node_ = idnConverter->getStringPrepared(node, IDNConverter::XMPPNodePrep); 113 node_ = idnConverter->getStringPrepared(node, IDNConverter::XMPPNodePrep);
114 domain_ = idnConverter->getStringPrepared(domain, IDNConverter::NamePrep); 114 if (domain.back() == '.') {
115 domain_ = idnConverter->getStringPrepared(domain.substr(0, domain.size() - 1), IDNConverter::NamePrep);
116 }
117 else {
118 domain_ = idnConverter->getStringPrepared(domain, IDNConverter::NamePrep);
119 }
115 resource_ = idnConverter->getStringPrepared(resource, IDNConverter::XMPPResourcePrep); 120 resource_ = idnConverter->getStringPrepared(resource, IDNConverter::XMPPResourcePrep);
116 } catch (...) { 121 } catch (...) {
117 valid_ = false; 122 valid_ = false;