From bf2fcc1602001f7ef4c4cc26b558df6a8961c4bc Mon Sep 17 00:00:00 2001 From: Christian Ulrich Date: Fri, 25 Sep 2020 20:58:04 +0200 Subject: [PATCH] use random source port to work around 'address in use' error --- examples/app/app.nim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/app/app.nim b/examples/app/app.nim index aeca967..1c54fd3 100644 --- a/examples/app/app.nim +++ b/examples/app/app.nim @@ -6,8 +6,6 @@ import asyncutils import ../../message import random -const AcceptPort = Port(2000) - type PunchdResponse = Future[tuple[msgContent: string, sock: AsyncSocket]] PunchdProgressCb = proc (future: PunchdResponse, msgContent: string) {.async.} @@ -214,11 +212,13 @@ proc runApp(serverHostname: string, serverPort: Port, peerId: string, asyncCheck handlePunchdMessages(punchdConn) if otherPeerId.len == 0: # register and wait for connections + let acceptPort = rand(Port(1024) .. Port.high) + echo &"init server connection, probing port: {acceptPort}" let serverConn = await initServerConnection(serverHostname, serverPort, - AcceptPort) + acceptPort) asyncCheck handleServerMessages(serverConn) asyncCheck handlePeerNotifications(serverConn, punchdConn, peerId) - let myPorts = (@[AcceptPort] & serverConn.probedPorts).join(",") + let myPorts = (@[acceptPort] & serverConn.probedPorts).join(",") let req = &"{peerId}|{serverConn.probedIp}|{myPorts}" echo "registering: ", req discard await serverConn.sendRequest("register", req)