Fix addr to string ip issue

This commit is contained in:
Nick Peng
2019-02-17 12:09:29 +08:00
parent fbbbc80d20
commit 0df8c07103
5 changed files with 14 additions and 14 deletions

View File

@@ -67,7 +67,7 @@ unsigned long get_tick_count(void)
return (ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
}
char *gethost_by_addr(char *host, struct sockaddr *addr, socklen_t addr_len)
char *gethost_by_addr(char *host, int maxsize, struct sockaddr *addr)
{
struct sockaddr_storage *addr_store = (struct sockaddr_storage *)addr;
host[0] = 0;
@@ -75,7 +75,7 @@ char *gethost_by_addr(char *host, struct sockaddr *addr, socklen_t addr_len)
case AF_INET: {
struct sockaddr_in *addr_in;
addr_in = (struct sockaddr_in *)addr;
inet_ntop(AF_INET, &addr_in->sin_addr, host, addr_len);
inet_ntop(AF_INET, &addr_in->sin_addr, host, maxsize);
} break;
case AF_INET6: {
struct sockaddr_in6 *addr_in6;
@@ -84,9 +84,9 @@ char *gethost_by_addr(char *host, struct sockaddr *addr, socklen_t addr_len)
struct sockaddr_in addr_in4;
memset(&addr_in4, 0, sizeof(addr_in4));
memcpy(&addr_in4.sin_addr.s_addr, addr_in6->sin6_addr.s6_addr + 12, sizeof(addr_in4.sin_addr.s_addr));
inet_ntop(AF_INET, &addr_in4.sin_addr, host, addr_len);
inet_ntop(AF_INET, &addr_in4.sin_addr, host, maxsize);
} else {
inet_ntop(AF_INET6, &addr_in6->sin6_addr, host, addr_len);
inet_ntop(AF_INET6, &addr_in6->sin6_addr, host, maxsize);
}
} break;
default: