diff options
-rw-r--r-- | dhcpv6/option_bootfileurl.go | 28 | ||||
-rw-r--r-- | dhcpv6/option_bootfileurl_test.go | 4 | ||||
-rw-r--r-- | netboot/netboot.go | 2 |
3 files changed, 15 insertions, 19 deletions
diff --git a/dhcpv6/option_bootfileurl.go b/dhcpv6/option_bootfileurl.go index 5857af1..e4817cb 100644 --- a/dhcpv6/option_bootfileurl.go +++ b/dhcpv6/option_bootfileurl.go @@ -8,42 +8,38 @@ import ( "fmt" ) +// OptBootFileURL implements the OPT_BOOTFILE_URL option type OptBootFileURL struct { - bootFileUrl []byte + BootFileURL []byte } +// Code returns the option code func (op *OptBootFileURL) Code() OptionCode { return OPT_BOOTFILE_URL } +// ToBytes serializes the option and returns it as a sequence of bytes func (op *OptBootFileURL) ToBytes() []byte { buf := make([]byte, 4) binary.BigEndian.PutUint16(buf[0:2], uint16(OPT_BOOTFILE_URL)) - binary.BigEndian.PutUint16(buf[2:4], uint16(len(op.bootFileUrl))) - buf = append(buf, op.bootFileUrl...) + binary.BigEndian.PutUint16(buf[2:4], uint16(len(op.BootFileURL))) + buf = append(buf, op.BootFileURL...) return buf } -func (op *OptBootFileURL) BootFileURL() []byte { - return op.bootFileUrl -} - -func (op *OptBootFileURL) SetBootFileURL(bootFileUrl []byte) { - op.bootFileUrl = bootFileUrl -} - +// Length returns the option length in bytes func (op *OptBootFileURL) Length() int { - return len(op.bootFileUrl) + return len(op.BootFileURL) } func (op *OptBootFileURL) String() string { - return fmt.Sprintf("OptBootFileURL{BootFileUrl=%s}", op.bootFileUrl) + return fmt.Sprintf("OptBootFileURL{BootFileUrl=%s}", op.BootFileURL) } -// build an OptBootFileURL structure from a sequence of bytes. -// The input data does not include option code and length bytes. +// ParseOptBootFileURL builds an OptBootFileURL structure from a sequence +// of bytes. The input data does not include option code and length bytes. func ParseOptBootFileURL(data []byte) (*OptBootFileURL, error) { opt := OptBootFileURL{} - opt.bootFileUrl = append([]byte(nil), data...) + opt.BootFileURL = append([]byte(nil), data...) return &opt, nil } diff --git a/dhcpv6/option_bootfileurl_test.go b/dhcpv6/option_bootfileurl_test.go index b42fd7c..6f7e077 100644 --- a/dhcpv6/option_bootfileurl_test.go +++ b/dhcpv6/option_bootfileurl_test.go @@ -14,7 +14,7 @@ func TestOptBootFileURL(t *testing.T) { if optLen := opt.Length(); optLen != len(expected) { t.Fatalf("Invalid length. Expected %v, got %v", len(expected), optLen) } - if url := opt.BootFileURL(); !bytes.Equal(url, expected) { + if url := opt.BootFileURL; !bytes.Equal(url, expected) { t.Fatalf("Invalid boot file URL. Expected %v, got %v", expected, url) } } @@ -24,7 +24,7 @@ func TestOptBootFileURLToBytes(t *testing.T) { expected := []byte{00, 59, 00, byte(len(urlString))} expected = append(expected, urlString...) opt := OptBootFileURL{ - bootFileUrl: urlString, + BootFileURL: urlString, } toBytes := opt.ToBytes() if !bytes.Equal(toBytes, expected) { diff --git a/netboot/netboot.go b/netboot/netboot.go index 6b10c3c..c88cb44 100644 --- a/netboot/netboot.go +++ b/netboot/netboot.go @@ -88,6 +88,6 @@ func ConversationToNetconf(conversation []dhcpv6.DHCPv6) (*NetConf, string, erro } } obf := opt.(*dhcpv6.OptBootFileURL) - bootfile = string(obf.BootFileURL()) + bootfile = string(obf.BootFileURL) return netconf, bootfile, nil } |