pidgin.vv: 1fa05b8b: Setup all prefs for TURN
malu at pidgin.im
malu at pidgin.im
Fri Jan 9 20:10:45 EST 2009
-----------------------------------------------------------------
Revision: 1fa05b8b4d069723f0cba486203a2a00c3baf096
Ancestor: 106c6ba87b3a431f8ec3adad7e4e569f3d008f83
Author: malu at pidgin.im
Date: 2009-01-10T01:09:25
Branch: im.pidgin.pidgin.vv
URL: http://d.pidgin.im/viewmtn/revision/info/1fa05b8b4d069723f0cba486203a2a00c3baf096
Modified files:
libpurple/media.c pidgin/gtkprefs.c
ChangeLog:
Setup all prefs for TURN
Some more preparation for setting the TURN param when creating the FsSession
-------------- next part --------------
============================================================
--- libpurple/media.c aa453673acb28aa529d040f9945e9ccce3c1c00c
+++ libpurple/media.c ace1525a6274e3b80cffb467edbc664aecc4bf78
@@ -1307,6 +1307,15 @@ purple_media_get_stun_pref_ip()
return purple_media_get_ip(stun_pref);
}
+static gchar *
+purple_media_get_turn_pref_ip()
+{
+ const gchar *turn_pref =
+ purple_prefs_get_string("/purple/network/turn_server");
+
+ return purple_media_get_ip(turn_pref);
+}
+
static gboolean
purple_media_add_stream_internal(PurpleMedia *media, const gchar *sess_id,
const gchar *who, FsMediaType type,
@@ -1390,11 +1399,17 @@ purple_media_add_stream_internal(PurpleM
if (!stream) {
GError *err = NULL;
- gchar *stun_ip = NULL;
FsStream *fsstream = NULL;
- if ((stun_ip = purple_media_get_stun_pref_ip())) {
- GParameter *param = g_new0(GParameter, num_params+1);
+ gchar *stun_ip = purple_media_get_stun_pref_ip();
+ gchar *turn_ip = purple_media_get_turn_pref_ip();
+
+ if (stun_ip || turn_ip) {
+ int new_num_params =
+ (stun_ip != NULL && turn_ip == NULL) ||
+ (stun_ip == NULL && turn_ip != NULL) ?
+ num_params + 1 : num_params + 2;
+ GParameter *param = g_new0(GParameter, new_num_params);
memcpy(param, params, sizeof(GParameter) * num_params);
param[num_params].name = "stun-ip";
@@ -1403,9 +1418,12 @@ purple_media_add_stream_internal(PurpleM
fsstream = fs_session_new_stream(session->session,
participant, type_direction,
- transmitter, num_params+1, param, &err);
+ transmitter, new_num_params, param, &err);
g_free(param);
- g_free(stun_ip);
+ if (stun_ip)
+ g_free(stun_ip);
+ if (turn_ip)
+ g_free(turn_ip);
} else {
fsstream = fs_session_new_stream(session->session,
participant, type_direction,
============================================================
--- pidgin/gtkprefs.c 7459f4bea8cbf951be3bf717ab67e44c5028db91
+++ pidgin/gtkprefs.c 02b7dab253b8cef73c7cd7755092f145a79c2db0
@@ -2613,7 +2613,10 @@ pidgin_prefs_init(void)
/* 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_string("/purple/network/turn_server", "");
purple_prefs_add_int("/purple/network/turn_port", 3478);
+ purple_prefs_add_string("/purple/network/turn_username", "");
+ purple_prefs_add_string("/purple/network/turn_password", "");
pidgin_prefs_update_old();
}
More information about the Commits
mailing list