summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/dhcpv6message.go
diff options
context:
space:
mode:
authorChris Koch <chrisko@google.com>2019-12-28 00:57:21 -0800
committerinsomniac <insomniacslk@users.noreply.github.com>2020-03-05 15:51:55 +0000
commitc483f8beb41f894c3d9c5adf0781c73ca1fbd7ac (patch)
tree73f0afcf6f50af83220f4f2d67e7edbc2cb71326 /dhcpv6/dhcpv6message.go
parent8d3e32a40580e3e227f64d9068f84b321e7921b2 (diff)
v6: add ClientID getter
Signed-off-by: Chris Koch <chrisko@google.com>
Diffstat (limited to 'dhcpv6/dhcpv6message.go')
-rw-r--r--dhcpv6/dhcpv6message.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/dhcpv6/dhcpv6message.go b/dhcpv6/dhcpv6message.go
index d67882a..00452dc 100644
--- a/dhcpv6/dhcpv6message.go
+++ b/dhcpv6/dhcpv6message.go
@@ -29,6 +29,15 @@ func (mo MessageOptions) ArchTypes() iana.Archs {
return opt.(*optClientArchType).Archs
}
+// ClientID returns the client identifier option.
+func (mo MessageOptions) ClientID() *Duid {
+ opt := mo.GetOne(OptionClientID)
+ if opt == nil {
+ return nil
+ }
+ return &opt.(*optClientID).Duid
+}
+
// Message represents a DHCPv6 Message as defined by RFC 3315 Section 6.
type Message struct {
MessageType MessageType
@@ -72,7 +81,7 @@ func NewSolicit(hwaddr net.HardwareAddr, modifiers ...Modifier) (*Message, error
return nil, err
}
m.MessageType = MessageTypeSolicit
- m.AddOption(&OptClientId{Cid: duid})
+ m.AddOption(OptClientID(duid))
oro := new(OptRequestedOption)
oro.SetRequestedOptions([]OptionCode{
OptionDNSRecursiveNameServer,