diff options
author | Julen Garcia Leunda <hicom150@gmail.com> | 2021-06-17 07:15:49 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-17 07:15:49 +0300 |
commit | 73c941c6eb3b539efbbbb499ab3d033531347b19 (patch) | |
tree | be6333241137b452388f9a6548d033574f21c313 /lib | |
parent | 711318d026b678948a3236aed5df8331d93b332c (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.js | 4 | ||||
-rw-r--r-- | lib/torrent.js | 4 | ||||
-rw-r--r-- | lib/utp.js | 8 |
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 {} + } +})() |