Merge pull request #11 from diasdavid/fix-close

fix: improve close handling
This commit is contained in:
David Dias 2016-05-08 22:18:29 +01:00
commit 34630cad98
5 changed files with 32 additions and 23 deletions

View File

@ -3,6 +3,7 @@ language: node_js
node_js:
- 4
- 5
- stable
# Make sure we have new NPM.
before_install:
@ -11,6 +12,7 @@ before_install:
script:
- npm run lint
- npm test
- npm run coverage
addons:
firefox: 'latest'
@ -18,3 +20,6 @@ addons:
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
after_success:
- npm run coverage-publish

12
circle.yml Normal file
View File

@ -0,0 +1,12 @@
machine:
node:
version: stable
dependencies:
pre:
- google-chrome --version
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get --only-upgrade install google-chrome-stable
- google-chrome --version

View File

@ -12,7 +12,9 @@
"build": "gulp build",
"release": "gulp release",
"release-minor": "gulp release --type minor",
"release-major": "gulp release --type major"
"release-major": "gulp release --type major",
"coverage": "gulp coverage",
"coverage-publish": "aegir-coverage publish"
},
"pre-commit": [
"lint",
@ -34,11 +36,12 @@
"dependencies": {
"mafmt": "^1.0.1",
"multiaddr": "^1.1.1",
"run-parallel": "^1.1.6",
"simple-websocket": "github:diasdavid/simple-websocket#ec31437"
},
"devDependencies": {
"chai": "^3.5.0",
"aegir": "^2.0.0",
"aegir": "^3.0.1",
"gulp": "^3.9.1",
"interface-connection": "0.0.3",
"interface-transport": "^0.1.1",
@ -49,4 +52,4 @@
"Francisco Baio Dias <xicombd@gmail.com>",
"dignifiedquire <dignifiedquire@gmail.com>"
]
}
}

View File

@ -4,6 +4,7 @@ const debug = require('debug')
const log = debug('libp2p:websockets')
const SWS = require('simple-websocket')
const mafmt = require('mafmt')
const parallel = require('run-parallel')
exports = module.exports = WebSockets
@ -64,14 +65,10 @@ function WebSockets () {
log('Called close with no active listeners')
return callback()
}
var count = 0
listeners.forEach((listener) => {
listener.close(() => {
if (++count === listeners.length) {
callback()
}
})
})
parallel(listeners.map((listener) => {
return (cb) => listener.close(cb)
}), callback)
}
this.filter = (multiaddrs) => {

View File

@ -20,9 +20,7 @@ describe('libp2p-websockets', function () {
ws.createListener(mh, (socket) => {
expect(socket).to.exist
socket.end()
ws.close(() => {
done()
})
ws.close(done)
}, () => {
const conn = ws.dial(mh)
conn.end()
@ -45,9 +43,7 @@ describe('libp2p-websockets', function () {
expect(socket).to.exist
socket.end()
expect(socket.getObservedAddrs()).to.deep.equal([])
ws.close(() => {
done()
})
ws.close(done)
}, () => {
const conn = ws.dial(mh)
conn.end()
@ -76,9 +72,7 @@ describe('libp2p-websockets', function () {
conn.on('data', (data) => {
expect(data.toString()).to.equal(message)
conn.end()
ws.close(() => {
done()
})
ws.close(done)
})
})
})
@ -99,9 +93,7 @@ describe('libp2p-websockets', function () {
conn.on('data', (data) => {
expect(data.toString()).to.equal(message)
conn.end()
ws.close(() => {
done()
})
ws.close(done)
})
})
})