diff options
Diffstat (limited to 'dhcpv4/option_bootfile_name.go')
-rw-r--r-- | dhcpv4/option_bootfile_name.go | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/dhcpv4/option_bootfile_name.go b/dhcpv4/option_bootfile_name.go index ca9317b..e06e4eb 100644 --- a/dhcpv4/option_bootfile_name.go +++ b/dhcpv4/option_bootfile_name.go @@ -9,7 +9,7 @@ import ( // OptBootfileName implements the BootFile Name option type OptBootfileName struct { - BootfileName []byte + BootfileName string } // Code returns the option code @@ -19,7 +19,7 @@ func (op *OptBootfileName) Code() OptionCode { // ToBytes serializes the option and returns it as a sequence of bytes func (op *OptBootfileName) ToBytes() []byte { - return append([]byte{byte(op.Code()), byte(op.Length())}, op.BootfileName...) + return append([]byte{byte(op.Code()), byte(op.Length())}, []byte(op.BootfileName)...) } // Length returns the option length in bytes @@ -34,21 +34,5 @@ func (op *OptBootfileName) String() string { // ParseOptBootfileName returns a new OptBootfile from a byte stream or error if any func ParseOptBootfileName(data []byte) (*OptBootfileName, error) { - if len(data) < 3 { - return nil, ErrShortByteStream - } - code := OptionCode(data[0]) - if code != OptionBootfileName { - return nil, fmt.Errorf("ParseOptBootfileName: invalid code: %v; want %v", code, OptionBootfileName) - } - length := int(data[1]) - if length < 1 { - return nil, fmt.Errorf("Bootfile name has invalid length of %d", length) - } - bootFileNameData := data[2:] - if len(bootFileNameData) < length { - return nil, fmt.Errorf("ParseOptBootfileName: short data: %d bytes; want %d", - len(bootFileNameData), length) - } - return &OptBootfileName{BootfileName: bootFileNameData[:length]}, nil + return &OptBootfileName{BootfileName: string(data)}, nil } |