Skip to content

Commit

Permalink
simplify code for #11
Browse files Browse the repository at this point in the history
  • Loading branch information
mafintosh committed Dec 2, 2014
1 parent 5b9cfaa commit d037e4c
Showing 1 changed file with 12 additions and 18 deletions.
30 changes: 12 additions & 18 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,32 +82,26 @@ var join = function(port, swarm) {
var swarms = {};
var servers = [];

servers.push(net.createServer(function(connection) {
var onconnection = function(connection) {
var wire = onwire(swarm, connection, function(infoHash, peerId) {
var swarm = swarms[infoHash.toString('hex')];
if (!swarm) return connection.destroy();
swarm._onincoming(connection, wire);
}, true);
}));

if(swarm.utp) {
servers.push(utp.createServer(function(connection) {
var wire = onwire(swarm, connection, function(infoHash, peerId) {
var swarm = swarms[infoHash.toString('hex')];
if (!swarm) return connection.destroy();
swarm._onincoming(connection, wire);
}, true);
}));
}

servers.forEach(function(server) {
server.listen(port, function() {
pool.listening = true;
Object.keys(swarms).forEach(function(infoHash) {
swarms[infoHash].emit('listening');
});
servers.push(net.createServer(onconnection));
if (swarm.utp) servers.push(utp.createServer(onconnection));

var loop = function(i) {
if (i < servers.length) return servers[i].listen(port, loop.bind(null, i+1))
pool.listening = true;
Object.keys(swarms).forEach(function(infoHash) {
swarms[infoHash].emit('listening');
});
})
}

loop(0)

This comment has been minimized.

Copy link
@mafintosh

mafintosh Dec 2, 2014

Author Owner

lines 98-101 should be called when all servers in the array have emitted listen. the code here might be a bit clever though lol :)


pool = pools[port] = {
servers: servers,
Expand Down

0 comments on commit d037e4c

Please sign in to comment.