summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/dhcpv4.go
diff options
context:
space:
mode:
authorHu Jun <hujun.work@gmail.com>2020-06-23 17:13:04 -0700
committerHu Jun <hujun.work@gmail.com>2020-06-23 17:13:04 -0700
commit53863bbc3e1a9321931fe2d1187eb04f67ab75f4 (patch)
treea34bffdc80721c45d68acbd2060b23bf98efa203 /dhcpv4/dhcpv4.go
parent5461cb587315d93b3e9ba193d594df681e05b220 (diff)
parentd74cd86ad5b8d0fbef8217631f7968bd7bab0d72 (diff)
Merge branch 'master' of https://github.com/insomniacslk/dhcp into dhcpv4_release
Diffstat (limited to 'dhcpv4/dhcpv4.go')
-rw-r--r--dhcpv4/dhcpv4.go10
1 files changed, 3 insertions, 7 deletions
diff --git a/dhcpv4/dhcpv4.go b/dhcpv4/dhcpv4.go
index ff72c9e..e85fc60 100644
--- a/dhcpv4/dhcpv4.go
+++ b/dhcpv4/dhcpv4.go
@@ -144,6 +144,7 @@ func New(modifiers ...Modifier) (*DHCPv4, error) {
d := DHCPv4{
OpCode: OpcodeBootRequest,
HWType: iana.HWTypeEthernet,
+ ClientHWAddr: make(net.HardwareAddr, 6),
HopCount: 0,
TransactionID: xid,
NumSeconds: 0,
@@ -476,9 +477,6 @@ func (d *DHCPv4) ToBytes() []byte {
// HwAddrLen
hlen := uint8(len(d.ClientHWAddr))
- if hlen == 0 && d.HWType == iana.HWTypeEthernet {
- hlen = 6
- }
buf.Write8(hlen)
buf.Write8(d.HopCount)
buf.WriteBytes(d.TransactionID[:])
@@ -492,13 +490,11 @@ func (d *DHCPv4) ToBytes() []byte {
copy(buf.WriteN(16), d.ClientHWAddr)
var sname [64]byte
- copy(sname[:], []byte(d.ServerHostName))
- sname[len(d.ServerHostName)] = 0
+ copy(sname[:63], []byte(d.ServerHostName))
buf.WriteBytes(sname[:])
var file [128]byte
- copy(file[:], []byte(d.BootFileName))
- file[len(d.BootFileName)] = 0
+ copy(file[:127], []byte(d.BootFileName))
buf.WriteBytes(file[:])
// The magic cookie.