summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/client6
diff options
context:
space:
mode:
authorAndrea Barberio <insomniac@slackware.it>2019-04-29 13:52:22 +0100
committerinsomniac <insomniacslk@users.noreply.github.com>2019-04-29 15:44:25 +0100
commit03e9ac918544b248cd2d660195934d7c943cb4d7 (patch)
treea9b43d893419db1d567934dc56f23b2eaaf16e0d /dhcpv6/client6
parent5c6ea15a40cc06ac0af833fa3ef883de3f32037b (diff)
[server6] Server should join multicast address
The previous logic was wrong - there's no "listening" on multicast address, the server should listen on the given address, and join the multicast group. This PR fixes it. Also moved the multicast addresses to a common package. Tested with unit/integ tests, and with coredhcp. Signed-off-by: Andrea Barberio <insomniac@slackware.it>
Diffstat (limited to 'dhcpv6/client6')
-rw-r--r--dhcpv6/client6/client.go8
1 files changed, 1 insertions, 7 deletions
diff --git a/dhcpv6/client6/client.go b/dhcpv6/client6/client.go
index c7bd318..3722579 100644
--- a/dhcpv6/client6/client.go
+++ b/dhcpv6/client6/client.go
@@ -17,12 +17,6 @@ const (
MaxUDPReceivedPacketSize = 8192 // arbitrary size. Theoretically could be up to 65kb
)
-// Broadcast destination IP addresses as defined by RFC 3315
-var (
- AllDHCPRelayAgentsAndServers = net.ParseIP("ff02::1:2")
- AllDHCPServers = net.ParseIP("ff05::1:3")
-)
-
// Client implements a DHCPv6 client
type Client struct {
ReadTimeout time.Duration
@@ -119,7 +113,7 @@ func (c *Client) sendReceive(ifname string, packet dhcpv6.DHCPv6, expectedType d
// if no RemoteAddr is specified, use AllDHCPRelayAgentsAndServers
var raddr net.UDPAddr
if c.RemoteAddr == nil {
- raddr = net.UDPAddr{IP: AllDHCPRelayAgentsAndServers, Port: dhcpv6.DefaultServerPort}
+ raddr = net.UDPAddr{IP: dhcpv6.AllDHCPRelayAgentsAndServers, Port: dhcpv6.DefaultServerPort}
} else {
if addr, ok := c.RemoteAddr.(*net.UDPAddr); ok {
raddr = *addr