mirror of
https://github.com/fluencelabs/js-libp2p-tcp
synced 2025-06-25 13:31:47 +00:00
fix(dial): proper error handling on dial (#77)
This commit is contained in:
committed by
David Dias
parent
0edc487b23
commit
4d4f295dd5
@ -48,6 +48,7 @@
|
||||
"lodash.isfunction": "^3.0.8",
|
||||
"mafmt": "^2.1.6",
|
||||
"multiaddr": "^2.2.2",
|
||||
"once": "^1.4.0",
|
||||
"stream-to-pull-stream": "^1.7.2"
|
||||
},
|
||||
"contributors": [
|
||||
@ -60,4 +61,4 @@
|
||||
"Richard Littauer <richard.littauer@gmail.com>",
|
||||
"Stephen Whitmore <stephen.whitmore@gmail.com>"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
13
src/index.js
13
src/index.js
@ -6,6 +6,7 @@ const mafmt = require('mafmt')
|
||||
const includes = require('lodash.includes')
|
||||
const isFunction = require('lodash.isfunction')
|
||||
const Connection = require('interface-connection').Connection
|
||||
const once = require('once')
|
||||
const debug = require('debug')
|
||||
const log = debug('libp2p:tcp:dial')
|
||||
|
||||
@ -22,16 +23,24 @@ module.exports = class TCP {
|
||||
cb = () => {}
|
||||
}
|
||||
|
||||
cb = once(cb)
|
||||
const cOpts = ma.toOptions()
|
||||
log('Connecting to %s %s', cOpts.port, cOpts.host)
|
||||
|
||||
const rawSocket = net.connect(cOpts, cb)
|
||||
|
||||
const rawSocket = net.connect(cOpts)
|
||||
rawSocket.once('timeout', () => {
|
||||
log('timeout')
|
||||
rawSocket.emit('error', new Error('Timeout'))
|
||||
})
|
||||
|
||||
rawSocket.once('error', cb)
|
||||
|
||||
rawSocket.once('connect', () => {
|
||||
rawSocket.removeListener('error', cb)
|
||||
cb()
|
||||
})
|
||||
|
||||
|
||||
const socket = toPull.duplex(rawSocket)
|
||||
|
||||
const conn = new Connection(socket)
|
||||
|
@ -471,6 +471,13 @@ describe('Connection wrap', () => {
|
||||
)
|
||||
})
|
||||
|
||||
it('dial error', (done) => {
|
||||
tcp.dial(multiaddr('/ip4/999.0.0.1/tcp/1234'), (err) => {
|
||||
expect(err).to.exist()
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('matryoshka wrap', (done) => {
|
||||
const conn = tcp.dial(ma)
|
||||
const connWrap1 = new Connection(conn)
|
||||
|
Reference in New Issue
Block a user