From 0047db424379492c73dc31f0325250804b4f0b32 Mon Sep 17 00:00:00 2001 From: "Frank.Town" Date: Sun, 11 Jan 2026 08:27:31 +0800 Subject: [PATCH] feat#0: Re-query the DNS during reconnection --- evpp/TcpClient.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/evpp/TcpClient.h b/evpp/TcpClient.h index e355b61d3..f587063a3 100644 --- a/evpp/TcpClient.h +++ b/evpp/TcpClient.h @@ -105,6 +105,14 @@ class TcpClientEventLoopTmpl { int startConnect() { if (channel == NULL || channel->isClosed()) { + // Re-resolve DNS to get the latest IP address + memset(&remote_addr, 0, sizeof(remote_addr)); + int ret = sockaddr_set_ipport(&remote_addr, remote_host.c_str(), remote_port); + if (ret != 0) { + hloge("sockaddr_set_ipport %s:%d failed!\n", remote_host.c_str(), remote_port); + return ret; + } + int connfd = createsocket(&remote_addr.sa); if (connfd < 0) { hloge("createsocket %s:%d return %d!\n", remote_host.c_str(), remote_port, connfd);