diff options
Diffstat (limited to 'networking/udhcp/d6_packet.c')
-rw-r--r-- | networking/udhcp/d6_packet.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/networking/udhcp/d6_packet.c b/networking/udhcp/d6_packet.c index e166f520d..79a0ac8a8 100644 --- a/networking/udhcp/d6_packet.c +++ b/networking/udhcp/d6_packet.c | |||
@@ -127,7 +127,8 @@ int FAST_FUNC d6_send_raw_packet( | |||
127 | int FAST_FUNC d6_send_kernel_packet( | 127 | int FAST_FUNC d6_send_kernel_packet( |
128 | struct d6_packet *d6_pkt, unsigned d6_pkt_size, | 128 | struct d6_packet *d6_pkt, unsigned d6_pkt_size, |
129 | struct in6_addr *src_ipv6, int source_port, | 129 | struct in6_addr *src_ipv6, int source_port, |
130 | struct in6_addr *dst_ipv6, int dest_port) | 130 | struct in6_addr *dst_ipv6, int dest_port, |
131 | int ifindex) | ||
131 | { | 132 | { |
132 | struct sockaddr_in6 sa; | 133 | struct sockaddr_in6 sa; |
133 | int fd; | 134 | int fd; |
@@ -154,6 +155,7 @@ int FAST_FUNC d6_send_kernel_packet( | |||
154 | sa.sin6_family = AF_INET6; | 155 | sa.sin6_family = AF_INET6; |
155 | sa.sin6_port = htons(dest_port); | 156 | sa.sin6_port = htons(dest_port); |
156 | sa.sin6_addr = *dst_ipv6; /* struct copy */ | 157 | sa.sin6_addr = *dst_ipv6; /* struct copy */ |
158 | sa.sin6_scope_id = ifindex; | ||
157 | if (connect(fd, (struct sockaddr *)&sa, sizeof(sa)) == -1) { | 159 | if (connect(fd, (struct sockaddr *)&sa, sizeof(sa)) == -1) { |
158 | msg = "connect"; | 160 | msg = "connect"; |
159 | goto ret_close; | 161 | goto ret_close; |