mirror of
https://github.com/soypat/lneto.git
synced 2026-09-10 08:39:30 +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.SetXID(c.currentXID)
|
||||||
frm.SetHardware(1, 6, 0)
|
frm.SetHardware(1, 6, 0)
|
||||||
frm.SetSecs(1)
|
frm.SetSecs(1)
|
||||||
if c.state == StateBound {
|
if c.state == StateRequesting || c.state == StateSelecting || c.state == StateBound || c.state == StateRenewing {
|
||||||
// copy(frm.CIAddr()[:], c.offer[:])
|
copy(frm.CIAddr()[:], c.offer[:])
|
||||||
}
|
}
|
||||||
copy(frm.SIAddr()[:], c.svip[:])
|
copy(frm.SIAddr()[:], c.svip[:])
|
||||||
copy(frm.YIAddr()[:], c.offer[:])
|
copy(frm.YIAddr()[:], c.offer[:])
|
||||||
|
|||||||
+19
-5
@@ -32,7 +32,7 @@ func TestClientServer(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if n == 0 {
|
} else if n == 0 {
|
||||||
t.Fatal("no data exchanged")
|
t.Fatal("no client discover")
|
||||||
}
|
}
|
||||||
assertClState(StateSelecting)
|
assertClState(StateSelecting)
|
||||||
err = sv.Demux(buf[:n], 0)
|
err = sv.Demux(buf[:n], 0)
|
||||||
@@ -44,23 +44,37 @@ func TestClientServer(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if n == 0 {
|
} else if n == 0 {
|
||||||
t.Fatal("no data exchanged")
|
t.Fatal("no server offer")
|
||||||
}
|
}
|
||||||
err = cl.Demux(buf[:n], 0)
|
err = cl.Demux(buf[:n], 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
assertClState(StateRequesting)
|
assertClState(StateSelecting)
|
||||||
|
|
||||||
// CLIENT SEND OUT ACK.
|
// CLIENT SEND OUT REQUEST.
|
||||||
n, err = cl.Encapsulate(buf[:], 0)
|
n, err = cl.Encapsulate(buf[:], 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if n == 0 {
|
} else if n == 0 {
|
||||||
t.Fatal("no data exchanged")
|
t.Fatal("no client request")
|
||||||
}
|
}
|
||||||
|
assertClState(StateRequesting)
|
||||||
err = sv.Demux(buf[:n], 0)
|
err = sv.Demux(buf[:n], 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
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")
|
err = errors.New("DHCP request unexpected state")
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
client.state = StateBound
|
client.state = StateRequesting
|
||||||
sv.pending++
|
sv.pending++
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user