diff options
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 } |