From f8909ff73c18a476c6f3ec5ea5796da18b0f6f65 Mon Sep 17 00:00:00 2001 From: Ludovic Chenut Date: Fri, 18 Aug 2023 13:37:08 +0200 Subject: [PATCH] Fix in case of double connections with sctp --- webrtc/sctp.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webrtc/sctp.nim b/webrtc/sctp.nim index 78e6004..7206c37 100644 --- a/webrtc/sctp.nim +++ b/webrtc/sctp.nim @@ -191,7 +191,7 @@ proc getOrCreateConnection(self: Sctp, self.sentAddress = address let connErr = self.usrsctpAwait: conn.sctpSocket.usrsctp_connect(cast[ptr SockAddr](addr sconn), SockLen(sizeof(sconn))) - doAssert 0 == connErr or errno == EINPROGRESS, ($errno) # TODO raise + doAssert 0 == connErr or errno == posix.EINPROGRESS, ($errno) # TODO raise self.connections[address] = conn return conn @@ -308,6 +308,8 @@ proc connect*(self: Sctp, sctpPort: uint16 = 5000): Future[SctpConnection] {.async.} = trace "Connect", address let conn = await self.getOrCreateConnection(self.udp, address, sctpPort) + if conn.state == Connected: + return conn try: await conn.connectEvent.wait() except CancelledError as exc: