diff options
author | Chris Koch <chrisko@google.com> | 2019-12-28 09:49:06 -0800 |
---|---|---|
committer | insomniac <insomniacslk@users.noreply.github.com> | 2020-03-05 15:51:55 +0000 |
commit | 72e14d6762cd895f00fd5c04fec8a16df521b65f (patch) | |
tree | f7238d1821e2c6070ebf5e611808964e1b77c08a /dhcpv6/option_bootfileparam.go | |
parent | bb0c09a3da430db48a7bd0749b7d5411649e1026 (diff) |
v6: add BootFileParam getter
Signed-off-by: Chris Koch <chrisko@google.com>
Diffstat (limited to 'dhcpv6/option_bootfileparam.go')
-rw-r--r-- | dhcpv6/option_bootfileparam.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/dhcpv6/option_bootfileparam.go b/dhcpv6/option_bootfileparam.go index 13ec16a..4e2750b 100644 --- a/dhcpv6/option_bootfileparam.go +++ b/dhcpv6/option_bootfileparam.go @@ -6,21 +6,21 @@ import ( "github.com/u-root/u-root/pkg/uio" ) -// OptBootFileParam implements the OptionBootfileParam option -// -// This module defines the OPT_BOOTFILE_PARAM structure. -// https://www.ietf.org/rfc/rfc5970.txt (section 3.2) -type OptBootFileParam []string +// OptBootFileParam returns a BootfileParam option as defined in RFC 5970 +// Section 3.2. +func OptBootFileParam(args ...string) Option { + return optBootFileParam(args) +} -var _ Option = OptBootFileParam(nil) +type optBootFileParam []string // Code returns the option code -func (op OptBootFileParam) Code() OptionCode { +func (optBootFileParam) Code() OptionCode { return OptionBootfileParam } // ToBytes serializes the option and returns it as a sequence of bytes -func (op OptBootFileParam) ToBytes() []byte { +func (op optBootFileParam) ToBytes() []byte { buf := uio.NewBigEndianBuffer(nil) for _, param := range op { if len(param) >= 1<<16 { @@ -41,14 +41,15 @@ func (op OptBootFileParam) ToBytes() []byte { return buf.Data() } -func (op OptBootFileParam) String() string { - return fmt.Sprintf("OptBootFileParam(%v)", ([]string)(op)) +func (op optBootFileParam) String() string { + return fmt.Sprintf("BootFileParam: %v", ([]string)(op)) } -// ParseOptBootFileParam builds an OptBootFileParam structure from a sequence +// parseOptBootFileParam builds an OptBootFileParam structure from a sequence // of bytes. The input data does not include option code and length bytes. -func ParseOptBootFileParam(data []byte) (result OptBootFileParam, err error) { +func parseOptBootFileParam(data []byte) (optBootFileParam, error) { buf := uio.NewBigEndianBuffer(data) + var result optBootFileParam for buf.Has(2) { length := buf.Read16() result = append(result, string(buf.CopyN(int(length)))) @@ -56,5 +57,5 @@ func ParseOptBootFileParam(data []byte) (result OptBootFileParam, err error) { if err := buf.FinError(); err != nil { return nil, err } - return + return result, nil } |