changeset 30922:cd7b7fa1a420

merge of '5f79bbf59f5a635ca42876049d3ac856b761d0ad' and 'f38c12fe8daa1a2c736378555a306bb2fcd583db'
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 05 Sep 2010 03:38:28 +0000
parents a2d5bafdbea9 (diff) c8a5c09df242 (current diff)
children 5b8347284660
files
diffstat 5 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.API	Fri Sep 03 20:56:29 2010 +0000
+++ b/ChangeLog.API	Sun Sep 05 03:38:28 2010 +0000
@@ -1,6 +1,11 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
 version 2.7.4 (MM/DD/YYYY):
+	Perl:
+		Changed:
+		* Purple::BuddyList::Chat::new now works properly.  Thanks
+		  to Rafael in devel@conference.pidgin.im for reporting and
+		  testing.
 
 version 2.7.3 (08/10/2010):
 	libpurple:
--- a/libpurple/plugins/perl/common/BuddyList.xs	Fri Sep 03 20:56:29 2010 +0000
+++ b/libpurple/plugins/perl/common/BuddyList.xs	Sun Sep 05 03:38:28 2010 +0000
@@ -345,14 +345,14 @@
 	char *t_key, *t_value;
 CODE:
 	t_HV =  (HV *)SvRV(components);
-	t_GHash = g_hash_table_new(g_str_hash, g_str_equal);
+	t_GHash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
 
 	for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) {
 		t_key = hv_iterkey(t_HE, &len);
 		t_SV = *hv_fetch(t_HV, t_key, len, 0);
 		t_value = SvPVutf8_nolen(t_SV);
 
-		g_hash_table_insert(t_GHash, t_key, t_value);
+		g_hash_table_insert(t_GHash, g_strdup(t_key), g_strdup(t_value));
 	}
 
 	RETVAL = purple_chat_new(account, alias, t_GHash);
--- a/libpurple/plugins/perl/common/Server.xs	Fri Sep 03 20:56:29 2010 +0000
+++ b/libpurple/plugins/perl/common/Server.xs	Sun Sep 05 03:38:28 2010 +0000
@@ -144,6 +144,7 @@
 		g_hash_table_insert(t_GHash, t_key, t_value);
 	}
 	serv_join_chat(conn, t_GHash);
+	g_hash_table_destroy(t_GHash);
 
 void 
 serv_move_buddy(buddy, group1, group2)
--- a/libpurple/protocols/jabber/google/google_session.c	Fri Sep 03 20:56:29 2010 +0000
+++ b/libpurple/protocols/jabber/google/google_session.c	Sun Sep 05 03:38:28 2010 +0000
@@ -543,13 +543,15 @@
 		const gchar *protocol = xmlnode_get_attrib(cand, "protocol");
 		const gchar *address = xmlnode_get_attrib(cand, "address");
 		const gchar *port = xmlnode_get_attrib(cand, "port");
+		const gchar *preference = xmlnode_get_attrib(cand, "preference");
 		guint component_id;
 
 		if (cname && type && address && port) {
 			PurpleMediaCandidateType candidate_type;
-
+			guint prio = preference ? atof(preference) * 1000 : 0;
+			
 			g_snprintf(n, sizeof(n), "S%d", name++);
-
+			
 			if (g_str_equal(type, "local"))
 				candidate_type = PURPLE_MEDIA_CANDIDATE_TYPE_HOST;
 			else if (g_str_equal(type, "stun"))
@@ -573,7 +575,8 @@
 					address,
 					atoi(port));
 			g_object_set(info, "username", xmlnode_get_attrib(cand, "username"),
-					"password", xmlnode_get_attrib(cand, "password"), NULL);
+					"password", xmlnode_get_attrib(cand, "password"),
+			        "priority", prio, NULL);
 			if (!strncmp(cname, "video_", 6))
 				video_list = g_list_append(video_list, info);
 			else
--- a/libpurple/protocols/yahoo/util.c	Fri Sep 03 20:56:29 2010 +0000
+++ b/libpurple/protocols/yahoo/util.c	Sun Sep 05 03:38:28 2010 +0000
@@ -43,7 +43,7 @@
 	if(proxy_ssl)
 		ppi = purple_proxy_get_setup(account);
 	else
-		ppi = purple_global_proxy_get_info();
+		ppi = purple_proxy_get_setup(NULL);
 
 	type = purple_proxy_info_get_type(ppi);