libpurple/protocols/jabber/google.c

branch
next.minor
changeset 29663
43574cbf67c5
parent 28984
1d84517d56eb
parent 29642
ef61075f9587
child 29665
ddf17c6b7fed
--- a/libpurple/protocols/jabber/google.c	Sat Nov 28 02:11:27 2009 +0000
+++ b/libpurple/protocols/jabber/google.c	Sat Nov 28 02:22:49 2009 +0000
@@ -1433,7 +1433,7 @@
 	JabberStream *js;
 	JabberChat *chat;
 	gchar *room;
-	guint32 tmp, a, b;
+	gchar *uuid = purple_uuid_random();
 
 	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
 
@@ -1442,20 +1442,7 @@
 	g_return_if_fail(gc != NULL);
 	js = purple_connection_get_protocol_data(gc);
 
-	/* Generate a version 4 UUID */
-	tmp = g_random_int();
-	a = 0x4000 | (tmp & 0xFFF); /* 0x4000 to 0x4FFF */
-	tmp >>= 12;
-	b = ((1 << 3) << 12) | (tmp & 0x3FFF); /* 0x8000 to 0xBFFF */
-
-	tmp = g_random_int();
-	room = g_strdup_printf("private-chat-%08x-%04x-%04x-%04x-%04x%08x",
-			g_random_int(),
-			tmp & 0xFFFF,
-			a,
-			b,
-			(tmp >> 16) & 0xFFFF, g_random_int());
-
+	room = g_strdup_printf("private-chat-%s", uuid);	
 	chat = jabber_join_chat(js, room, GOOGLE_GROUPCHAT_SERVER, js->user->node,
 	                        NULL, NULL);
 	if (chat) {
@@ -1464,4 +1451,5 @@
 	}
 
 	g_free(room);
+	g_free(uuid);
 }

mercurial