From e5531a315f7b1ec2fc3b257d6fbbbde0d0d09163 Mon Sep 17 00:00:00 2001 From: Garret Buell Date: Fri, 29 May 2015 10:43:35 -0700 Subject: [PATCH] reuseAddr for dgram.CreateSocket Creating a udp4 and udp6 socket on the same port can result in "ERROR: bind EADDRINUSE". Passing reuseAddr: true fixes this. --- server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server.js b/server.js index caec3a9..9db7d80 100644 --- a/server.js +++ b/server.js @@ -66,12 +66,12 @@ function Server (opts) { // start a udp tracker unless the user explicitly says no if (opts.udp !== false) { - self.udp4 = self.udp = dgram.createSocket('udp4') + self.udp4 = self.udp = dgram.createSocket({type: 'udp4', reuseAddr: true}) self.udp4.on('message', self.onUdpRequest.bind(self)) self.udp4.on('error', self._onError.bind(self)) self.udp4.on('listening', onListening) - self.udp6 = dgram.createSocket('udp6') + self.udp6 = dgram.createSocket({type: 'udp6', reuseAddr: true}) self.udp6.on('message', self.onUdpRequest.bind(self)) self.udp6.on('error', self._onError.bind(self)) self.udp6.on('listening', onListening)