diff libpurple/protocols/bonjour/bonjour.c @ 25497:f38799160cfa

Better support running many Bonjour clients on the same machine by allowing a listening port to be specified and falling back to a system-assigned port if it can't be used. Fixes #8462.
author Daniel Atallah <daniel.atallah@gmail.com>
date Sat, 21 Feb 2009 22:10:27 +0000
parents efe41c4e0df0
children 4b8c4870b13a
line wrap: on
line diff
--- a/libpurple/protocols/bonjour/bonjour.c	Thu Feb 19 22:52:49 2009 +0000
+++ b/libpurple/protocols/bonjour/bonjour.c	Sat Feb 21 22:10:27 2009 +0000
@@ -102,7 +102,7 @@
 
 	/* Start waiting for jabber connections (iChat style) */
 	bd->jabber_data = g_new0(BonjourJabber, 1);
-	bd->jabber_data->port = BONJOUR_DEFAULT_PORT_INT;
+	bd->jabber_data->port = purple_account_get_int(account, "port", BONJOUR_DEFAULT_PORT);
 	bd->jabber_data->account = account;
 
 	if (bonjour_jabber_start(bd->jabber_data) == -1) {
@@ -706,6 +706,9 @@
 	prpl_info.user_splits = g_list_append(prpl_info.user_splits, split);
 
 	/* Creating the options for the protocol */
+	option = purple_account_option_int_new(_("Local Port"), "port", BONJOUR_DEFAULT_PORT);
+	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
+
 	option = purple_account_option_string_new(_("First name"), "first", default_firstname);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);