diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2013-11-14 15:59:05 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2013-11-14 23:31:32 +0100 |
commit | 83219052c32a2073f52aae8e4b1c15822343f04f (patch) | |
tree | 6925c26677985d48d8b7e25be8674be9ba8dfa00 /src/xmpp | |
parent | 8c33a01e68125fbc76be1f455f5ca85bcb952e65 (diff) | |
download | biboumi-83219052c32a2073f52aae8e4b1c15822343f04f.tar.gz biboumi-83219052c32a2073f52aae8e4b1c15822343f04f.tar.bz2 biboumi-83219052c32a2073f52aae8e4b1c15822343f04f.tar.xz biboumi-83219052c32a2073f52aae8e4b1c15822343f04f.zip |
Fix JID parsing
Diffstat (limited to 'src/xmpp')
-rw-r--r-- | src/xmpp/jid.cpp | 16 |
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); } |