mirror of
https://github.com/soypat/lneto.git
synced 2026-08-15 04:13:44 +00:00
fix DHCP client and finish tests
This commit is contained in:
+2
-2
@@ -246,8 +246,8 @@ func (c *Client) setHeader(frm Frame) {
|
||||
frm.SetXID(c.currentXID)
|
||||
frm.SetHardware(1, 6, 0)
|
||||
frm.SetSecs(1)
|
||||
if c.state == StateBound {
|
||||
// copy(frm.CIAddr()[:], c.offer[:])
|
||||
if c.state == StateRequesting || c.state == StateSelecting || c.state == StateBound || c.state == StateRenewing {
|
||||
copy(frm.CIAddr()[:], c.offer[:])
|
||||
}
|
||||
copy(frm.SIAddr()[:], c.svip[:])
|
||||
copy(frm.YIAddr()[:], c.offer[:])
|
||||
|
||||
+19
-5
@@ -32,7 +32,7 @@ func TestClientServer(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n == 0 {
|
||||
t.Fatal("no data exchanged")
|
||||
t.Fatal("no client discover")
|
||||
}
|
||||
assertClState(StateSelecting)
|
||||
err = sv.Demux(buf[:n], 0)
|
||||
@@ -44,23 +44,37 @@ func TestClientServer(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n == 0 {
|
||||
t.Fatal("no data exchanged")
|
||||
t.Fatal("no server offer")
|
||||
}
|
||||
err = cl.Demux(buf[:n], 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assertClState(StateRequesting)
|
||||
assertClState(StateSelecting)
|
||||
|
||||
// CLIENT SEND OUT ACK.
|
||||
// CLIENT SEND OUT REQUEST.
|
||||
n, err = cl.Encapsulate(buf[:], 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n == 0 {
|
||||
t.Fatal("no data exchanged")
|
||||
t.Fatal("no client request")
|
||||
}
|
||||
assertClState(StateRequesting)
|
||||
err = sv.Demux(buf[:n], 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// SERVER REPLIES WITH ACK.
|
||||
n, err = sv.Encapsulate(buf[:], 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n == 0 {
|
||||
t.Fatal("no server reply")
|
||||
}
|
||||
err = cl.Demux(buf[:n], 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assertClState(StateBound)
|
||||
}
|
||||
|
||||
+1
-1
@@ -140,7 +140,7 @@ func (sv *Server) Demux(carrierData []byte, frameOffset int) error {
|
||||
err = errors.New("DHCP request unexpected state")
|
||||
break
|
||||
}
|
||||
client.state = StateBound
|
||||
client.state = StateRequesting
|
||||
sv.pending++
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user