mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 08:46:58 +08:00
corrected reading of IP addresses.
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user