Don't print error message for IP detection in case of domain error

This commit is contained in:
Benau
2020-02-01 14:48:58 +08:00
parent 58f4579062
commit ae2406d193
3 changed files with 26 additions and 22 deletions

View File

@@ -228,6 +228,7 @@ void NetworkConfig::detectIPType()
adv = StkTime::getMonoTimeMs() % UserConfigParams::m_stun_servers.size();
std::advance(ipv6_it, adv);
SocketAddress::g_ignore_error_message = true;
SocketAddress stun_v4(ipv4_it->first, 0/*port specified in addr*/,
AF_INET);
bool sent_ipv4 = false;
@@ -237,11 +238,6 @@ void NetworkConfig::detectIPType()
stun_v4.getSockaddr(), stun_v4.getSocklen());
sent_ipv4 = true;
}
else
{
Log::error("NetworkConfig", "Invalid IPv4: %s",
ipv4_it->first.c_str());
}
SocketAddress stun_v6(ipv6_it->first, 0/*port specified in addr*/,
AF_INET6);
@@ -252,11 +248,7 @@ void NetworkConfig::detectIPType()
stun_v6.getSockaddr(), stun_v6.getSocklen());
sent_ipv6 = true;
}
else
{
Log::error("NetworkConfig", "Invalid IPv6: %s",
ipv6_it->first.c_str());
}
SocketAddress::g_ignore_error_message = false;
bool has_ipv4 = false;
bool has_ipv6 = false;

View File

@@ -44,6 +44,8 @@
#include <sys/types.h>
// ----------------------------------------------------------------------------
bool SocketAddress::g_ignore_error_message = false;
// ----------------------------------------------------------------------------
/** IPv4 Constructor. */
SocketAddress::SocketAddress(uint32_t ip, uint16_t port)
@@ -137,24 +139,32 @@ void SocketAddress::init(const std::string& str, uint16_t port_number,
if (status != 0)
{
#ifdef WIN32
wchar_t msgbuf[256] = {};
DWORD flags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS |
FORMAT_MESSAGE_MAX_WIDTH_MASK;
FormatMessage(flags, NULL, WSAGetLastError(), 0, msgbuf,
sizeof(msgbuf) / sizeof(wchar_t), NULL);
Log::error("SocketAddress", "Error in getaddrinfo for "
"SocketAddress (str constructor) %s: %s",
str.c_str(), StringUtils::wideToUtf8(msgbuf).c_str());
if (!g_ignore_error_message)
{
wchar_t msgbuf[256] = {};
DWORD flags =
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS |
FORMAT_MESSAGE_MAX_WIDTH_MASK;
FormatMessage(flags, NULL, WSAGetLastError(), 0, msgbuf,
sizeof(msgbuf) / sizeof(wchar_t), NULL);
Log::error("SocketAddress", "Error in getaddrinfo for "
"SocketAddress (str constructor) %s: %s",
str.c_str(), StringUtils::wideToUtf8(msgbuf).c_str());
}
#else
Log::error("SocketAddress", "Error in getaddrinfo for "
"SocketAddress (str constructor) %s: %s",
str.c_str(), gai_strerror(status));
if (!g_ignore_error_message)
{
Log::error("SocketAddress", "Error in getaddrinfo for "
"SocketAddress (str constructor) %s: %s",
str.c_str(), gai_strerror(status));
}
#endif
return;
}
if (res == NULL)
{
Log::error("SocketAddress", "No address is resolved.");
if (!g_ignore_error_message)
Log::error("SocketAddress", "No address is resolved.");
return;
}

View File

@@ -51,6 +51,8 @@ private:
short m_family;
public:
// ------------------------------------------------------------------------
static bool g_ignore_error_message;
// ------------------------------------------------------------------------
static void unitTesting();
// ------------------------------------------------------------------------