From 5efa089196e0c7aac795c9576b654d49ba79e846 Mon Sep 17 00:00:00 2001 From: Tanguy Date: Tue, 20 Jun 2023 10:25:29 +0200 Subject: [PATCH] TCP transport: handle getObservedAddr errors (#918) --- libp2p/transports/tcptransport.nim | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libp2p/transports/tcptransport.nim b/libp2p/transports/tcptransport.nim index ae9c571..b8891e0 100644 --- a/libp2p/transports/tcptransport.nim +++ b/libp2p/transports/tcptransport.nim @@ -240,8 +240,15 @@ method accept*(self: TcpTransport): Future[Connection] {.async, gcsafe.} = self.acceptFuts[index] = self.servers[index].accept() let transp = await finished - let observedAddr = await getObservedAddr(transp) - return await self.connHandler(transp, Opt.some(observedAddr), Direction.In) + try: + let observedAddr = await getObservedAddr(transp) + return await self.connHandler(transp, Opt.some(observedAddr), Direction.In) + except CancelledError as exc: + transp.close() + raise exc + except CatchableError as exc: + debug "Failed to handle connection", exc = exc.msg + transp.close() except TransportTooManyError as exc: debug "Too many files opened", exc = exc.msg except TransportAbortedError as exc: