Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJulen Garcia Leunda <hicom150@gmail.com>2021-06-17 07:15:49 +0300
committerGitHub <noreply@github.com>2021-06-17 07:15:49 +0300
commit73c941c6eb3b539efbbbb499ab3d033531347b19 (patch)
treebe6333241137b452388f9a6548d033574f21c313 /lib
parent711318d026b678948a3236aed5df8331d93b332c (diff)
fix: make utp-native optional (#1966)
* Add optional utp-native * Add error log when uTP cannot be loaded * Fix review suggestions * Remove an additional require call Co-authored-by: Alex <alxmorais8@msn.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/conn-pool.js4
-rw-r--r--lib/torrent.js4
-rw-r--r--lib/utp.js8
3 files changed, 13 insertions, 3 deletions
diff --git a/lib/conn-pool.js b/lib/conn-pool.js
index 1ed49d9..004a4cd 100644
--- a/lib/conn-pool.js
+++ b/lib/conn-pool.js
@@ -1,9 +1,9 @@
const debug = require('debug')('webtorrent:conn-pool')
const net = require('net') // browser exclude
-const utp = require('utp-native') // browser exclude
const queueMicrotask = require('queue-microtask')
const Peer = require('./peer')
+const utp = require('./utp') // browser exclude
/**
* Connection Pool
@@ -162,6 +162,8 @@ class ConnPool {
}
}
+ConnPool.UTP_SUPPORT = Object.keys(utp).length > 0
+
function noop () {}
module.exports = ConnPool
diff --git a/lib/torrent.js b/lib/torrent.js
index 8ab87ff..24e7b44 100644
--- a/lib/torrent.js
+++ b/lib/torrent.js
@@ -26,13 +26,13 @@ const randomIterate = require('random-iterate')
const sha1 = require('simple-sha1')
const speedometer = require('speedometer')
const utMetadata = require('ut_metadata')
-const utp = require('utp-native') // browser exclude
const utPex = require('ut_pex') // browser exclude
const File = require('./file')
const Peer = require('./peer')
const RarityMap = require('./rarity-map')
const Server = require('./server') // browser exclude
+const utp = require('./utp') // browser exclude
const WebConn = require('./webconn')
const MAX_BLOCK_LENGTH = 128 * 1024
@@ -1752,7 +1752,7 @@ class Torrent extends EventEmitter {
port: parts[1]
}
- if (peer.type === 'utpOutgoing') {
+ if (this.client.utp && peer.type === 'utpOutgoing') {
peer.conn = utp.connect(opts.port, opts.host)
} else {
peer.conn = net.connect(opts)
diff --git a/lib/utp.js b/lib/utp.js
new file mode 100644
index 0000000..2cde3f4
--- /dev/null
+++ b/lib/utp.js
@@ -0,0 +1,8 @@
+module.exports = (() => {
+ try {
+ return require('utp-native')
+ } catch (err) {
+ console.warn('WebTorrent: uTP not supported')
+ return {}
+ }
+})()