aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/d6_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/d6_socket.c')
-rw-r--r--networking/udhcp/d6_socket.c9
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 ) {