From fee0bdaa75ff77800284f24e12270f6c513260d6 Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Mon, 18 May 2015 11:13:18 +0200 Subject: [PATCH] Correctly handle reference attribution --- src/vo/GVOHub.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/vo/GVOHub.cpp b/src/vo/GVOHub.cpp index 740a531..bdeed5c 100644 --- a/src/vo/GVOHub.cpp +++ b/src/vo/GVOHub.cpp @@ -545,9 +545,26 @@ void GVOHub::request_register(const GXml& xml, const socklen_t& sock) std::cout << "GVOHub::request_register" << std::endl; #endif + // Set client reference + int counter = 0; + std::string reference; + do { + reference = "c"+gammalib::str(counter); + int i = 0; + for (; i < m_clients.size(); ++i) { + if (m_clients[i].reference == reference) { + counter++; + break; + } + } + if (i >= m_clients.size()) { + break; + } + } while (true); + // Create a new client struct client voclient; - voclient.reference = "c"+gammalib::str(m_clients.size()); + voclient.reference = reference; voclient.private_key = random_string(15); // Attached client -- libgit2 0.21.4