diff options
Diffstat (limited to 'dhcpv6')
-rw-r--r-- | dhcpv6/dhcpv6.go | 1 | ||||
-rw-r--r-- | dhcpv6/dhcpv6relay.go | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/dhcpv6/dhcpv6.go b/dhcpv6/dhcpv6.go index 7b8ab72..329d8b2 100644 --- a/dhcpv6/dhcpv6.go +++ b/dhcpv6/dhcpv6.go @@ -17,6 +17,7 @@ type DHCPv6 interface { GetOneOption(code OptionCode) Option SetOptions(options []Option) AddOption(Option) + UpdateOption(Option) } // Modifier defines the signature for functions that can modify DHCPv6 diff --git a/dhcpv6/dhcpv6relay.go b/dhcpv6/dhcpv6relay.go index 513d25a..2deef5c 100644 --- a/dhcpv6/dhcpv6relay.go +++ b/dhcpv6/dhcpv6relay.go @@ -121,6 +121,17 @@ func (r *DHCPv6Relay) AddOption(option Option) { r.options = append(r.options, option) } +// UpdateOption replaces the first option of the same type as the specified one. +func (r *DHCPv6Relay) UpdateOption(option Option) { + for idx, opt := range d.options { + if opt.Code() == option.Code() { + d.options[idx] = option + // don't look further + break + } + } +} + func (r *DHCPv6Relay) IsRelay() bool { return true } |