diff --git a/network_interface.nim b/network_interface.nim index b213496..a9cc891 100644 --- a/network_interface.nim +++ b/network_interface.nim @@ -26,7 +26,7 @@ proc getifaddrs(ifap: ptr ptr Ifaddrs): int {.header: "", importc: "g proc freeifaddrs(ifap: ptr Ifaddrs): void {.header: "", importc: "freeifaddrs".} proc if_nametoindex(ifname: cstring): cuint {.header: "", importc: "if_nametoindex".} -proc fromIpAddress*(address: IpAddress): NetworkInterface = +proc getNetworkInterface*(address: IpAddress): NetworkInterface = var interfaces: ptr Ifaddrs if getifaddrs(addr interfaces) != 0: raise newException(NetworkInterfaceError, "getifaddrs failed") diff --git a/tcp_syni.nim b/tcp_syni.nim index 4dac239..c4f4fc4 100644 --- a/tcp_syni.nim +++ b/tcp_syni.nim @@ -96,7 +96,7 @@ proc injectTcpPacket(rawFd: AsyncFD, ipPacket: IpPacket) {.async.} = proc captureSeqNumbers(attempt: ConnectAttempt, cb: PunchProgressCb) {.async.} = # FIXME: timeout? - let iface = fromIpAddress(attempt.srcIp) + let iface = getNetworkInterface(attempt.srcIp) let captureFd = setupEthernetCapturingSocket(iface) var seqNums = newSeq[uint32]() while seqNums.len < attempt.dstPorts.len: @@ -117,7 +117,7 @@ proc captureSeqNumbers(attempt: ConnectAttempt, cb: PunchProgressCb) {.async.} = await cb(seqNums) proc captureAndResendAck(attempt: ConnectAttempt) {.async.} = - let iface = fromIpAddress(attempt.srcIp) + let iface = getNetworkInterface(attempt.srcIp) let captureFd = setupEthernetCapturingSocket(iface) let injectFd = setupTcpInjectingSocket() block loops: