Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add proxy options to allow proxying tracker and peer connections #874

Open
wants to merge 16 commits into
base: master
from
Open
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

Check for proxy requirements in electron

  • Loading branch information
yciabaud committed Aug 26, 2016
commit 158330896a76d30b787d9e71f48a31e89ee3e29f
@@ -120,17 +120,24 @@ function WebTorrent (opts) {
if (!self.proxyOpts.socksProxy.proxy) self.proxyOpts.socksProxy.proxy = {}
if (!self.proxyOpts.socksProxy.proxy.type) self.proxyOpts.socksProxy.proxy.type = 5

// Ensure electron-wrtc is used in electron with socks proxy
if (self.proxyOpts.socksProxy && self.proxyOpts.proxyPeerConnections &&
process && process.versions['electron'] &&
self.tracker.wrtc && !self.tracker.wrtc.electronDaemon) {
return self.emit('error', 'You need to provide an electron-wrtc instance in opts.wrtc to use socks in electron')
}

// Convert proxy opts to electron API in webtorrent-hybrid
if (self.tracker.wrtc && self.tracker.wrtc.electronDaemon &&
self.proxyOpts && self.proxyOpts.socksProxy && self.proxyOpts.proxyPeerConnections) {
if (!self.proxyOpts.socksProxy.proxy.authentication && !self.proxyOpts.socksProxy.proxy.userid) {
self.proxyOpts.socksProxy && self.proxyOpts.proxyPeerConnections) {
if (!self.proxyOpts.socksProxy.proxy.authentication && !self.proxyOpts.socksProxy.proxy.userid && self.proxyOpts.socksProxy.proxy.type === 5) {
var electronConfig = {
proxyRules: 'socks' + self.proxyOpts.socksProxy.proxy.type + '://' + self.proxyOpts.socksProxy.proxy.ipAddress + ':' + self.proxyOpts.socksProxy.proxy.port
}
self.tracker.wrtc.electronDaemon.eval('window.webContents.session.setProxy(' +
JSON.stringify(electronConfig) + ', function(){})', networkSettingsReady)
} else {
self.emit('error', 'SOCKS Proxy authentication is not available in electron-wrtc')
self.emit('error', 'SOCKS Proxy must be version 5 with no authentication to work in electron-wrtc')
}
} else {
networkSettingsReady(null)
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.