diff --git a/include/Swiften/Server/ServerFromClientSession.cpp b/include/Swiften/Server/ServerFromClientSession.cpp index 1b037306517f1afcb2601045194588f81e5e0d0e..c0a229a10781a4df8e2bc8a97153a12abca6d329 100644 --- a/include/Swiften/Server/ServerFromClientSession.cpp +++ b/include/Swiften/Server/ServerFromClientSession.cpp @@ -109,7 +109,12 @@ void ServerFromClientSession::handleElement(boost::shared_ptr element) } else if (IQ* iq = dynamic_cast(element.get())) { if (boost::shared_ptr resourceBind = iq->getPayload()) { - setRemoteJID(JID(user_, getLocalJID().getDomain(), resourceBind->getResource())); + std::string bucket = "abcdefghijklmnopqrstuvwxyz"; + std::string uuid; + for (int i = 0; i < 10; i++) { + uuid += bucket[rand() % bucket.size()]; + } + setRemoteJID(JID(user_, getLocalJID().getDomain(), uuid)); boost::shared_ptr resultResourceBind(new ResourceBind()); resultResourceBind->setJID(getRemoteJID()); getXMPPLayer()->writeElement(IQ::createResult(JID(), iq->getID(), resultResourceBind));