void PeerConnectionMedia::ProtocolProxyQueryHandler::SetProxyOnPcm( nsIProxyInfo& proxyinfo) { CSFLogInfo(logTag, "%s: Had proxyinfo", __FUNCTION__); nsresult rv; nsCString httpsProxyHost; int32_t httpsProxyPort; rv = proxyinfo.GetHost(httpsProxyHost); if (NS_FAILED(rv)) { CSFLogError(logTag, "%s: Failed to get proxy server host", __FUNCTION__); return; } rv = proxyinfo.GetPort(&httpsProxyPort); if (NS_FAILED(rv)) { CSFLogError(logTag, "%s: Failed to get proxy server port", __FUNCTION__); return; } if (pcm_->mIceCtx.get()) { assert(httpsProxyPort >= 0 && httpsProxyPort < (1 << 16)); pcm_->mProxyServer.reset( new NrIceProxyServer(httpsProxyHost.get(), static_cast<uint16_t>(httpsProxyPort))); } else { CSFLogError(logTag, "%s: Failed to set proxy server (ICE ctx unavailable)", __FUNCTION__); } }
void PeerConnectionMedia::ProtocolProxyQueryHandler::SetProxyOnPcm( nsIProxyInfo& proxyinfo) { CSFLogInfo(logTag, "%s: Had proxyinfo", __FUNCTION__); nsresult rv; nsCString httpsProxyHost; int32_t httpsProxyPort; rv = proxyinfo.GetHost(httpsProxyHost); if (NS_FAILED(rv)) { CSFLogError(logTag, "%s: Failed to get proxy server host", __FUNCTION__); return; } rv = proxyinfo.GetPort(&httpsProxyPort); if (NS_FAILED(rv)) { CSFLogError(logTag, "%s: Failed to get proxy server port", __FUNCTION__); return; } if (pcm_->mIceCtxHdlr.get()) { assert(httpsProxyPort >= 0 && httpsProxyPort < (1 << 16)); // Note that this could check if PrivacyRequested() is set on the PC and // remove "webrtc" from the ALPN list. But that would only work if the PC // was constructed with a peerIdentity constraint, not when isolated // streams are added. If we ever need to signal to the proxy that the // media is isolated, then we would need to restructure this code. pcm_->mProxyServer.reset( new NrIceProxyServer(httpsProxyHost.get(), static_cast<uint16_t>(httpsProxyPort), "webrtc,c-webrtc")); } else { CSFLogError(logTag, "%s: Failed to set proxy server (ICE ctx unavailable)", __FUNCTION__); } }