Mercurial > pidgin
changeset 26014:c7ab1983df88
merge of '106c6ba87b3a431f8ec3adad7e4e569f3d008f83'
and 'a00c26c622d19ab8c25e652b478707ea3368a619'
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Sat, 10 Jan 2009 00:55:35 +0000 |
parents | c80f151b159a (diff) 0605c1121613 (current diff) |
children | 5c3976757e50 |
files | |
diffstat | 2 files changed, 42 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/media.c Sat Jan 10 00:34:48 2009 +0000 +++ b/libpurple/media.c Sat Jan 10 00:55:35 2009 +0000 @@ -1277,25 +1277,34 @@ stream->session->id, stream->participant); } +/* this should probably be made IPv6-compatible some time, and made async? + maybe this should be a public function in libpurple...*/ +static gchar * +purple_media_get_ip(const gchar *hostname) +{ + struct hostent *host; + + if ((host = gethostbyname(hostname)) && host->h_addr) { + gchar *ip = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", + host->h_addr[0], host->h_addr[1], + host->h_addr[2], host->h_addr[3]); + purple_debug_info("media", "IP address for %s found: %s\n", + hostname, ip); + return ip; + } else { + purple_debug_info("media", "Unable to resolve %s IP address\n", + hostname); + return NULL; + } +} + static gchar * purple_media_get_stun_pref_ip() { const gchar *stun_pref = purple_prefs_get_string("/purple/network/stun_server"); - struct hostent *host; - - if ((host = gethostbyname(stun_pref)) && host->h_addr) { - gchar *stun_ip = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", - host->h_addr[0], host->h_addr[1], - host->h_addr[2], host->h_addr[3]); - purple_debug_info("media", "IP address for %s found: %s\n", - stun_pref, stun_ip); - return stun_ip; - } else { - purple_debug_info("media", "Unable to resolve %s IP address\n", - stun_pref); - return NULL; - } + + return purple_media_get_ip(stun_pref); } static gboolean
--- a/pidgin/gtkprefs.c Sat Jan 10 00:34:48 2009 +0000 +++ b/pidgin/gtkprefs.c Sat Jan 10 00:55:35 2009 +0000 @@ -1286,6 +1286,20 @@ g_signal_connect(G_OBJECT(ports_checkbox), "clicked", G_CALLBACK(pidgin_toggle_sensitive), spin_button); + /* Relay server (TURN) */ + vbox = pidgin_make_frame(ret, _("Relay Server")); + sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + pidgin_prefs_labeled_entry(vbox, _("_TURN server:"), + "/purple/network/turn_server", sg); + spin_button = pidgin_prefs_labeled_spin_button(vbox, _("_Port:"), + "/purple/network/turn_port", 0, 65535, sg); + pidgin_prefs_labeled_entry(vbox, + _("_Username:"), + "/purple/network/turn_username", sg); + pidgin_prefs_labeled_entry(vbox, + _("_Password:"), + "/purple/network/turn_password", sg); + if (purple_running_gnome()) { vbox = pidgin_make_frame(ret, _("Proxy Server & Browser")); prefs_proxy_frame = gtk_vbox_new(FALSE, 0); @@ -2595,6 +2609,11 @@ purple_prefs_add_int("/purple/media/audio/volume/input", 10); purple_prefs_add_int("/purple/media/audio/volume/output", 10); #endif /* USE_VV */ + + /* set a default port for TURN server */ + /* currently there is no default port for TURN, one option is to use the + same port as STUN */ + purple_prefs_add_int("/purple/network/turn_port", 3478); pidgin_prefs_update_old(); }