summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/option_bootfile_name.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv4/option_bootfile_name.go')
-rw-r--r--dhcpv4/option_bootfile_name.go22
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
}