From 063dc0412e0f84c779f133ec7293873b76f6b2d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sun, 28 Aug 2011 11:58:02 +0200
Subject: Use UUIDs as IQ IDs.


diff --git a/Swiften/Base/IDGenerator.cpp b/Swiften/Base/IDGenerator.cpp
index 80ed34d..5556f7b 100644
--- a/Swiften/Base/IDGenerator.cpp
+++ b/Swiften/Base/IDGenerator.cpp
@@ -1,34 +1,24 @@
 /*
- * Copyright (c) 2010 Remko Tronçon
+ * Copyright (c) 2010-2011 Remko Tronçon
  * Licensed under the GNU General Public License v3.
  * See Documentation/Licenses/GPLv3.txt for more information.
  */
 
 #include <Swiften/Base/IDGenerator.h>
 
+#include <boost/uuid/uuid.hpp>
+#include <boost/uuid/uuid_io.hpp>
+#include <boost/uuid/uuid_generators.hpp>
+#include <boost/lexical_cast.hpp>
+
 namespace Swift {
 
 IDGenerator::IDGenerator() {
 }
 
 std::string IDGenerator::generateID() {
-	bool carry = true;
-	size_t i = 0;
-	while (carry && i < currentID_.size()) {
-		char c = currentID_[i];
-		if (c >= 'z') {
-			currentID_[i] = 'a';
-		}
-		else {
-			currentID_[i] = c+1;
-			carry = false;
-		}
-		++i;
-	}
-	if (carry) {
-		currentID_ += 'a';
-	}
-	return currentID_;
+	static boost::uuids::random_generator generator;
+	return boost::lexical_cast<std::string>(generator());
 }
 
 }
diff --git a/Swiften/Base/IDGenerator.h b/Swiften/Base/IDGenerator.h
index d536dcc..44eeb76 100644
--- a/Swiften/Base/IDGenerator.h
+++ b/Swiften/Base/IDGenerator.h
@@ -14,8 +14,5 @@ namespace Swift {
 			IDGenerator();
 
 			std::string generateID();
-
-		private:
-			std::string currentID_;
 	};
 }
-- 
cgit v0.10.2-6-g49f6