diff options
Diffstat (limited to 'networking/udhcp/d6_socket.c')
-rw-r--r-- | networking/udhcp/d6_socket.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/networking/udhcp/d6_socket.c b/networking/udhcp/d6_socket.c index 6ad53a9c2..fe46e5f1d 100644 --- a/networking/udhcp/d6_socket.c +++ b/networking/udhcp/d6_socket.c | |||
@@ -38,6 +38,15 @@ int FAST_FUNC d6_read_interface(const char *interface, int *ifindex, struct in6_ | |||
38 | log1("IP %s", inet_ntoa(((struct sockaddr_in *)ifa->ifa_addr)->sin_addr)); | 38 | log1("IP %s", inet_ntoa(((struct sockaddr_in *)ifa->ifa_addr)->sin_addr)); |
39 | } | 39 | } |
40 | #endif | 40 | #endif |
41 | /* RFC 3315 | ||
42 | * 16. Client Source Address and Interface Selection | ||
43 | * | ||
44 | * "When a client sends a DHCP message to the | ||
45 | * All_DHCP_Relay_Agents_and_Servers address, ... ... The client | ||
46 | * MUST use a link-local address assigned to the interface for which it | ||
47 | * is requesting configuration information as the source address in the | ||
48 | * header of the IP datagram." | ||
49 | */ | ||
41 | if (ifa->ifa_addr->sa_family == AF_INET6 | 50 | if (ifa->ifa_addr->sa_family == AF_INET6 |
42 | && IN6_IS_ADDR_LINKLOCAL(&sip6->sin6_addr) | 51 | && IN6_IS_ADDR_LINKLOCAL(&sip6->sin6_addr) |
43 | ) { | 52 | ) { |