corrected reading of IP addresses.

This commit is contained in:
Nikos Mavrogiannopoulos
2014-01-29 18:27:57 +01:00
parent 6abcbcedd3
commit fe927da089
2 changed files with 5 additions and 4 deletions

View File

@@ -261,6 +261,7 @@ const char *human_addr2(const struct sockaddr *sa, socklen_t salen,
#define SA_IN6_PORT(p) (((struct sockaddr_in6 *)(p))->sin6_port)
#define SA_IN_P_GENERIC(addr, size) ((size==sizeof(struct sockaddr_in))?SA_IN_U8_P(addr):SA_IN6_U8_P(addr))
#define SA_IN_P_TYPE(addr, type) ((type==AF_INET)?SA_IN_U8_P(addr):SA_IN6_U8_P(addr))
#define SA_IN_SIZE(size) ((size==sizeof(struct sockaddr_in))?sizeof(struct in_addr):sizeof(struct in6_addr))
/* macros */

View File

@@ -72,8 +72,8 @@ int get_ips(struct worker_st *ws, struct vpn_st *vinfo, char **buffer,
if (strcmp(vinfo->name, ifa->ifa_name) == 0) {
p = (char *)inet_ntop(ifa->ifa_addr->sa_family,
ifa->ifa_addr, *buffer,
*buffer_size);
SA_IN_P_TYPE(ifa->ifa_addr, ifa->ifa_addr->sa_family),
*buffer, *buffer_size);
if (p == NULL) {
e = errno;
oclog(ws, LOG_ERR, "inet_ntop error: %s",
@@ -100,8 +100,8 @@ int get_ips(struct worker_st *ws, struct vpn_st *vinfo, char **buffer,
continue;
p = (char *)inet_ntop(ifa->ifa_dstaddr->sa_family,
ifa->ifa_dstaddr, *buffer,
*buffer_size);
SA_IN_P_TYPE(ifa->ifa_dstaddr, ifa->ifa_dstaddr->sa_family),
*buffer, *buffer_size);
if (p == NULL) {
e = errno;
oclog(ws, LOG_ERR, "inet_ntop error: %s",