fixed missing interface / scope_id copy.
This commit is contained in:
parent
b814b7cef3
commit
46919561ad
3 changed files with 5 additions and 3 deletions
|
@ -10,7 +10,7 @@ set(CHRONYVARDIR "/var/lib/chrony")
|
||||||
set(DESTDIR "")
|
set(DESTDIR "")
|
||||||
|
|
||||||
# Compiler and flags
|
# Compiler and flags
|
||||||
set(CMAKE_C_FLAGS "-O2 -g -D_FORTIFY_SOURCE=2 -fPIE -fstack-protector-strong --param=ssp-buffer-size=4 -Wmissing-prototypes -Wall -pthread")
|
set(CMAKE_C_FLAGS "-g -D_FORTIFY_SOURCE=2 -fPIE -fstack-protector-strong --param=ssp-buffer-size=4 -Wmissing-prototypes -Wall -pthread")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-pie -Wl,-z,relro,-z,now")
|
set(CMAKE_EXE_LINKER_FLAGS "-pie -Wl,-z,relro,-z,now")
|
||||||
|
|
||||||
# Targets
|
# Targets
|
||||||
|
|
1
socket.c
1
socket.c
|
@ -1785,6 +1785,7 @@ SCK_IPSockAddrToSockaddr(IPSockAddr *ip_sa, struct sockaddr *sa, int sa_length)
|
||||||
return 0;
|
return 0;
|
||||||
memset(sa, 0, sizeof (struct sockaddr_in6));
|
memset(sa, 0, sizeof (struct sockaddr_in6));
|
||||||
sa->sa_family = AF_INET6;
|
sa->sa_family = AF_INET6;
|
||||||
|
((struct sockaddr_in6 *)sa)->sin6_scope_id = ip_sa->ip_addr.interface;
|
||||||
memcpy(&((struct sockaddr_in6 *)sa)->sin6_addr.s6_addr, ip_sa->ip_addr.addr.in6,
|
memcpy(&((struct sockaddr_in6 *)sa)->sin6_addr.s6_addr, ip_sa->ip_addr.addr.in6,
|
||||||
sizeof (((struct sockaddr_in6 *)sa)->sin6_addr.s6_addr));
|
sizeof (((struct sockaddr_in6 *)sa)->sin6_addr.s6_addr));
|
||||||
((struct sockaddr_in6 *)sa)->sin6_port = htons(ip_sa->port);
|
((struct sockaddr_in6 *)sa)->sin6_port = htons(ip_sa->port);
|
||||||
|
|
5
util.c
5
util.c
|
@ -305,7 +305,7 @@ UTI_IPToString(const IPAddr *addr)
|
||||||
break;
|
break;
|
||||||
case IPADDR_INET6:
|
case IPADDR_INET6:
|
||||||
ip6 = addr->addr.in6;
|
ip6 = addr->addr.in6;
|
||||||
uint32_t interface = addr->interface;
|
uint16_t interface = addr->interface;
|
||||||
#ifdef FEAT_IPV6
|
#ifdef FEAT_IPV6
|
||||||
// compose the IPv6
|
// compose the IPv6
|
||||||
inet_ntop(AF_INET6, ip6, result, BUFFER_LENGTH);
|
inet_ntop(AF_INET6, ip6, result, BUFFER_LENGTH);
|
||||||
|
@ -497,6 +497,7 @@ UTI_IPHostToNetwork(const IPAddr *src, IPAddr *dest)
|
||||||
break;
|
break;
|
||||||
case IPADDR_INET6:
|
case IPADDR_INET6:
|
||||||
memcpy(dest->addr.in6, src->addr.in6, sizeof (dest->addr.in6));
|
memcpy(dest->addr.in6, src->addr.in6, sizeof (dest->addr.in6));
|
||||||
|
dest->interface = src->interface;
|
||||||
break;
|
break;
|
||||||
case IPADDR_ID:
|
case IPADDR_ID:
|
||||||
dest->addr.id = htonl(src->addr.id);
|
dest->addr.id = htonl(src->addr.id);
|
||||||
|
@ -512,7 +513,7 @@ void
|
||||||
UTI_IPNetworkToHost(const IPAddr *src, IPAddr *dest)
|
UTI_IPNetworkToHost(const IPAddr *src, IPAddr *dest)
|
||||||
{
|
{
|
||||||
dest->family = ntohs(src->family);
|
dest->family = ntohs(src->family);
|
||||||
dest->interface = 0;
|
dest->interface = src->interface;
|
||||||
|
|
||||||
switch (dest->family) {
|
switch (dest->family) {
|
||||||
case IPADDR_INET4:
|
case IPADDR_INET4:
|
||||||
|
|
Loading…
Reference in a new issue