mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-22 01:21:45 +00:00
[dhcpv6] Do not set sin6_scope_id on the unspecified client socket address
Setting sin6_scope_id to a non-zero value will cause the check against the "empty socket address" in udp_demux() to fail, and incoming DHCPv6 responses on interfaces other than net0 will be rejected with a spurious "No UDP connection listening on port 546" error. The transmitting network device is specified via the destination address, not the source address. Fix by simply not setting sin6_scope_id on the client socket address. Reported-by: Anton D. Kachalov <mouse@yandex-team.ru> Tested-by: Anton D. Kachalov <mouse@yandex-team.ru> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
3c7f5f9c4c
commit
6206f8f0f9
@ -924,7 +924,6 @@ int start_dhcpv6 ( struct interface *job, struct net_device *netdev,
|
||||
/* Construct client and server addresses */
|
||||
memset ( &addresses, 0, sizeof ( addresses ) );
|
||||
addresses.client.sin6.sin6_family = AF_INET6;
|
||||
addresses.client.sin6.sin6_scope_id = netdev->index;
|
||||
addresses.client.sin6.sin6_port = htons ( DHCPV6_CLIENT_PORT );
|
||||
addresses.server.sin6.sin6_family = AF_INET6;
|
||||
ipv6_all_dhcp_relay_and_servers ( &addresses.server.sin6.sin6_addr );
|
||||
|
Loading…
Reference in New Issue
Block a user