diff options
author | Florent Le Coz <louiz@louiz.org> | 2014-05-30 13:39:00 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-05-30 13:39:00 +0200 |
commit | a63faf6fa95017dbbfeaf0ff43fdb526c4ae7068 (patch) | |
tree | 42ee1836e80d6bbbc9cb2b2cff2b39116320c7da /src | |
parent | 8eb9e535a3514a7d9254819f499dcb169c56b51e (diff) | |
download | biboumi-a63faf6fa95017dbbfeaf0ff43fdb526c4ae7068.tar.gz biboumi-a63faf6fa95017dbbfeaf0ff43fdb526c4ae7068.tar.bz2 biboumi-a63faf6fa95017dbbfeaf0ff43fdb526c4ae7068.tar.xz biboumi-a63faf6fa95017dbbfeaf0ff43fdb526c4ae7068.zip |
Use libuuid to generate unique IDs for iq and adhoc sessions
Diffstat (limited to 'src')
-rw-r--r-- | src/test.cpp | 11 | ||||
-rw-r--r-- | src/xmpp/xmpp_component.cpp | 10 | ||||
-rw-r--r-- | src/xmpp/xmpp_component.hpp | 2 |
3 files changed, 15 insertions, 8 deletions
diff --git a/src/test.cpp b/src/test.cpp index 8fe739c..ac14377 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -121,9 +121,14 @@ int main() /** * Id generation */ - assert(XmppComponent::next_id() == "0"); - assert(XmppComponent::next_id() == "1"); - assert(XmppComponent::next_id() == "2"); + std::cout << color << "Testing id generation…" << reset << std::endl; + const std::string first_uuid = XmppComponent::next_id(); + const std::string second_uuid = XmppComponent::next_id(); + std::cout << first_uuid << std::endl; + std::cout << second_uuid << std::endl; + assert(first_uuid.size() == 36); + assert(second_uuid.size() == 36); + assert(first_uuid != second_uuid); /** * Utils diff --git a/src/xmpp/xmpp_component.cpp b/src/xmpp/xmpp_component.cpp index 4c62aa7..9547e3a 100644 --- a/src/xmpp/xmpp_component.cpp +++ b/src/xmpp/xmpp_component.cpp @@ -13,14 +13,14 @@ #include <config.h> +#include <uuid.h> + #ifdef SYSTEMDDAEMON_FOUND # include <systemd/sd-daemon.h> #endif using namespace std::string_literals; -unsigned long XmppComponent::current_id = 0; - static std::set<std::string> kickable_errors{ "gone", "internal-server-error", @@ -934,5 +934,9 @@ void XmppComponent::send_iq_version_request(const std::string& from, std::string XmppComponent::next_id() { - return std::to_string(XmppComponent::current_id++); + char uuid_str[37]; + uuid_t uuid; + uuid_generate(uuid); + uuid_unparse(uuid, uuid_str); + return uuid_str; } diff --git a/src/xmpp/xmpp_component.hpp b/src/xmpp/xmpp_component.hpp index b234d76..e3e24e0 100644 --- a/src/xmpp/xmpp_component.hpp +++ b/src/xmpp/xmpp_component.hpp @@ -235,8 +235,6 @@ private: */ std::unordered_map<std::string, std::unique_ptr<Bridge>> bridges; - static unsigned long current_id; - AdhocCommandsHandler adhoc_commands_handler; XmppComponent(const XmppComponent&) = delete; XmppComponent(XmppComponent&&) = delete; |