Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit f7093cd

Browse files
committed
Bug 855769: add pref to disable TURN if needed r=ekr
1 parent 0466eb5 commit f7093cd

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#ifdef MOZILLA_INTERNAL_API
2020
#include "MediaStreamList.h"
2121
#include "nsIScriptGlobalObject.h"
22+
#include "mozilla/Preferences.h"
2223
#include "jsapi.h"
2324
#endif
2425

@@ -137,9 +138,19 @@ nsresult PeerConnectionMedia::Init(const std::vector<NrIceStunServer>& stun_serv
137138
CSFLogError(logTag, "%s: Failed to set stun servers", __FUNCTION__);
138139
return rv;
139140
}
140-
if (NS_FAILED(rv = mIceCtx->SetTurnServers(turn_servers))) {
141-
CSFLogError(logTag, "%s: Failed to set turn servers", __FUNCTION__);
142-
return rv;
141+
// Give us a way to globally turn off TURN support
142+
#ifdef MOZILLA_INTERNAL_API
143+
bool disabled = Preferences::GetBool("media.peerconnection.turn.disable", false);
144+
#else
145+
bool disabled = false;
146+
#endif
147+
if (!disabled) {
148+
if (NS_FAILED(rv = mIceCtx->SetTurnServers(turn_servers))) {
149+
CSFLogError(logTag, "%s: Failed to set turn servers", __FUNCTION__);
150+
return rv;
151+
}
152+
} else if (turn_servers.size() != 0) {
153+
CSFLogError(logTag, "%s: Setting turn servers disabled", __FUNCTION__);
143154
}
144155
if (NS_FAILED(rv = mDNSResolver->Init())) {
145156
CSFLogError(logTag, "%s: Failed to initialize dns resolver", __FUNCTION__);

modules/libpref/src/init/all.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ pref("media.peerconnection.use_document_iceservers", true);
191191
// These values (aec, agc, and noice) are from media/webrtc/trunk/webrtc/common_types.h
192192
// kXxxUnchanged = 0, kXxxDefault = 1, and higher values are specific to each
193193
// setting (for Xxx = Ec, Agc, or Ns). Defaults are all set to kXxxDefault here.
194+
pref("media.peerconnection.turn.disable", false);
194195
pref("media.peerconnection.aec_enabled", true);
195196
pref("media.peerconnection.aec", 1);
196197
pref("media.peerconnection.agc_enabled", false);

0 commit comments

Comments
 (0)