From 81894ba0b38ec6cba5af18a10a85dad887dbe602 Mon Sep 17 00:00:00 2001 From: Pablo Mazzini Date: Thu, 11 Oct 2018 13:29:22 +0100 Subject: [PATCH] dhcp6: simplify PD obtention (#9) --- internal/dhcp6/dhcp6.go | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/internal/dhcp6/dhcp6.go b/internal/dhcp6/dhcp6.go index cd66ff5..0349a8e 100644 --- a/internal/dhcp6/dhcp6.go +++ b/internal/dhcp6/dhcp6.go @@ -287,19 +287,8 @@ func (c *Client) ObtainOrRenew() bool { if t1.Before(newCfg.RenewAfter) || newCfg.RenewAfter.IsZero() { newCfg.RenewAfter = t1 } - for b := o.Options(); len(b) > 0; { - sopt, err := dhcpv6.ParseOption(b) - if err != nil { - c.err = err - return true - } - b = b[4+sopt.Length():] - - prefix, ok := sopt.(*dhcpv6.OptIAPrefix) - if !ok { - continue - } - + if sopt := o.GetOneOption(dhcpv6.OptionIAPrefix); sopt != nil { + prefix := sopt.(*dhcpv6.OptIAPrefix) newCfg.Prefixes = append(newCfg.Prefixes, net.IPNet{ IP: prefix.IPv6Prefix(), Mask: net.CIDRMask(int(prefix.PrefixLength()), 128),