summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/option_vivc.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv4/option_vivc.go')
-rw-r--r--dhcpv4/option_vivc.go15
1 files changed, 5 insertions, 10 deletions
diff --git a/dhcpv4/option_vivc.go b/dhcpv4/option_vivc.go
index 4ff42a3..4c278e0 100644
--- a/dhcpv4/option_vivc.go
+++ b/dhcpv4/option_vivc.go
@@ -2,7 +2,6 @@ package dhcpv4
import (
"bytes"
- "encoding/binary"
"fmt"
"github.com/u-root/u-root/pkg/uio"
@@ -44,17 +43,13 @@ func (o *OptVIVC) Code() OptionCode {
// ToBytes returns a serialized stream of bytes for this option.
func (o *OptVIVC) ToBytes() []byte {
- buf := make([]byte, o.Length()+2)
- copy(buf[0:], []byte{byte(o.Code()), byte(o.Length())})
-
- b := buf[2:]
+ buf := uio.NewBigEndianBuffer(nil)
for _, id := range o.Identifiers {
- binary.BigEndian.PutUint32(b[0:4], id.EntID)
- b[4] = byte(len(id.Data))
- copy(b[5:], id.Data)
- b = b[len(id.Data)+5:]
+ buf.Write32(id.EntID)
+ buf.Write8(uint8(len(id.Data)))
+ buf.WriteBytes(id.Data)
}
- return buf
+ return buf.Data()
}
// String returns a human-readable string for this option.