summaryrefslogtreecommitdiff
path: root/src/xmpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/jid.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/xmpp/jid.cpp b/src/xmpp/jid.cpp
index 78b28a0..29a5302 100644
--- a/src/xmpp/jid.cpp
+++ b/src/xmpp/jid.cpp
@@ -2,18 +2,20 @@
Jid::Jid(const std::string& jid)
{
- std::string::size_type at = jid.find("@");
- if (at != std::string::npos)
+ std::string::size_type slash = jid.find('/');
+ if (slash != std::string::npos)
+ {
+ this->resource = jid.substr(slash + 1);
+ }
+
+ std::string::size_type at = jid.find('@');
+ if (at != std::string::npos && at < slash)
{
this->local = jid.substr(0, at);
at++;
}
else
at = 0;
- std::string::size_type slash = jid.find("/", at);
- if (slash != std::string::npos)
- {
- this->resource = jid.substr(slash + 1);
- }
+
this->domain = jid.substr(at, slash - at);
}