getIpaddrByName: normalize ip addr when input addr is IPv4 or IPv6
parent
7f1a85b025
commit
70f6ad56ed
3
HISTORY
3
HISTORY
|
|
@ -1,4 +1,7 @@
|
|||
|
||||
Version 1.78 2025-06-19
|
||||
* getIpaddrByName: normalize ip addr when input addr is IPv4 or IPv6
|
||||
|
||||
Version 1.77 2025-03-18
|
||||
* impl. shorten_path for /./ and /../
|
||||
* add function fc_compare_int64_ptr
|
||||
|
|
|
|||
|
|
@ -1208,26 +1208,35 @@ in_addr_64_t getIpaddrByNameEx(const char *name, char *buff,
|
|||
struct in6_addr addr6;
|
||||
in_addr_64_t ip_addr;
|
||||
|
||||
if ((*name >= '0' && *name <= '9') &&
|
||||
if (strchr(name, ':') != NULL) //IPv6
|
||||
{
|
||||
if (strchr(name, '%') == NULL &&
|
||||
inet_pton(AF_INET6, name, &addr6) == 1)
|
||||
{
|
||||
if (buff != NULL)
|
||||
{
|
||||
if (inet_ntop(AF_INET6, &addr6, buff, bufferSize) == NULL)
|
||||
{
|
||||
*buff = '\0';
|
||||
}
|
||||
}
|
||||
*af = AF_INET6;
|
||||
return *((in_addr_64_t *)((char *)&addr6 + 8));
|
||||
}
|
||||
}
|
||||
else if ((*name >= '0' && *name <= '9') &&
|
||||
inet_pton(AF_INET, name, &addr4) == 1)
|
||||
{
|
||||
if (buff != NULL)
|
||||
{
|
||||
snprintf(buff, bufferSize, "%s", name);
|
||||
if (inet_ntop(AF_INET, &addr4, buff, bufferSize) == NULL)
|
||||
{
|
||||
*buff = '\0';
|
||||
}
|
||||
}
|
||||
*af = AF_INET;
|
||||
return addr4.s_addr;
|
||||
}
|
||||
if (strchr(name, ':') != NULL && inet_pton(
|
||||
AF_INET6, name, &addr6) == 1)
|
||||
{
|
||||
if (buff != NULL)
|
||||
{
|
||||
snprintf(buff, bufferSize, "%s", name);
|
||||
}
|
||||
*af = AF_INET6;
|
||||
return *((in_addr_64_t *)((char *)&addr6 + 8));
|
||||
}
|
||||
|
||||
memset(&hints, 0, sizeof hints);
|
||||
hints.ai_family = AF_UNSPEC; // 支持IPv4和IPv6
|
||||
|
|
@ -2180,10 +2189,10 @@ int tcpprintkeepalive(int fd)
|
|||
return errno != 0 ? errno : EINVAL;
|
||||
}
|
||||
|
||||
logInfo("keepAlive=%d, keepIdle=%d, keepInterval=%d, keepCount=%d",
|
||||
logDebug("keepAlive=%d, keepIdle=%d, keepInterval=%d, keepCount=%d",
|
||||
keepAlive, keepIdle, keepInterval, keepCount);
|
||||
#else
|
||||
logInfo("keepAlive=%d", keepAlive);
|
||||
logDebug("keepAlive=%d", keepAlive);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue