mirror of
https://github.com/soypat/lneto.git
synced 2026-09-12 09:39:31 +00:00
Add ICMPv4 and lneto.StackNode and deprecate internet.StackNode (#65)
* begin adding icmp client * rely on anon structs * add tests * tests passing * icmp fleshed out * rework icmp to include ip addr * rename StackAsync.Demux/Encapsulate to RecvEthernet and SendEthernet * remove legacy unreachable TCP tests * remove uses of deprecated internet.StackNode in preference of lneto.StackNode * documentation * rename methods to signal no I/O happening
This commit is contained in:
+12
-12
@@ -114,7 +114,7 @@ func TestMDNS_QueryResponse(t *testing.T) {
|
||||
var buf [carrierDataSize]byte
|
||||
|
||||
// Querier encapsulates query through full stack (Ethernet+IP+UDP+mDNS).
|
||||
n, err := querierStack.Encapsulate(buf[:], -1, 0)
|
||||
n, err := querierStack.EgressEthernet(buf[:])
|
||||
if err != nil || n == 0 {
|
||||
t.Fatal("querier encapsulate:", err, n)
|
||||
}
|
||||
@@ -135,13 +135,13 @@ func TestMDNS_QueryResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
// Responder demuxes the query (multicast MAC+IP accepted via AcceptMulticast).
|
||||
err = responderStack.Demux(buf[:n], 0)
|
||||
err = responderStack.IngressEthernet(buf[:n])
|
||||
if err != nil {
|
||||
t.Fatal("responder demux:", err)
|
||||
}
|
||||
|
||||
// Responder encapsulates response.
|
||||
n, err = responderStack.Encapsulate(buf[:], -1, 0)
|
||||
n, err = responderStack.EgressEthernet(buf[:])
|
||||
if err != nil || n == 0 {
|
||||
t.Fatal("responder encapsulate:", err, n)
|
||||
}
|
||||
@@ -165,7 +165,7 @@ func TestMDNS_QueryResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
// Querier demuxes response.
|
||||
err = querierStack.Demux(buf[:n], 0)
|
||||
err = querierStack.IngressEthernet(buf[:n])
|
||||
if err != nil {
|
||||
t.Fatal("querier demux:", err)
|
||||
}
|
||||
@@ -310,25 +310,25 @@ func mdnsQueryRespond(t *testing.T, querier, responder *StackAsync, buf []byte)
|
||||
t.Helper()
|
||||
|
||||
// Querier encapsulates query.
|
||||
n, err := querier.Encapsulate(buf, -1, 0)
|
||||
n, err := querier.EgressEthernet(buf)
|
||||
if err != nil || n == 0 {
|
||||
t.Fatal("querier encapsulate:", err, n)
|
||||
}
|
||||
|
||||
// Responder demuxes multicast query directly.
|
||||
err = responder.Demux(buf[:n], 0)
|
||||
err = responder.IngressEthernet(buf[:n])
|
||||
if err != nil {
|
||||
t.Fatal("responder demux:", err)
|
||||
}
|
||||
|
||||
// Responder encapsulates response.
|
||||
n, err = responder.Encapsulate(buf, -1, 0)
|
||||
n, err = responder.EgressEthernet(buf)
|
||||
if err != nil || n == 0 {
|
||||
t.Fatal("responder encapsulate:", err, n)
|
||||
}
|
||||
|
||||
// Querier demuxes multicast response.
|
||||
err = querier.Demux(buf[:n], 0)
|
||||
err = querier.IngressEthernet(buf[:n])
|
||||
if err != nil {
|
||||
t.Fatal("querier demux:", err)
|
||||
}
|
||||
@@ -382,7 +382,7 @@ func TestMDNS_RealWorldQueries(t *testing.T) {
|
||||
var buf [MTU + ethernet.MaxOverheadSize]byte
|
||||
checkNoData := func(msg string) {
|
||||
t.Helper()
|
||||
n, err := responderStack.Encapsulate(buf[:], -1, 0)
|
||||
n, err := responderStack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n != 0 {
|
||||
@@ -434,18 +434,18 @@ func TestMDNS_RealWorldQueries(t *testing.T) {
|
||||
ifrm.CRCWriteUDPPseudo(&crc, ufrm.Length())
|
||||
got := crc.PayloadSum16(ifrm.Payload())
|
||||
ufrm.SetCRC(got)
|
||||
err := responderStack.Demux(buf[:14+20+8+msg.Len()], 0)
|
||||
err := responderStack.IngressEthernet(buf[:14+20+8+msg.Len()])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
n, err := responderStack.Encapsulate(buf[:], -1, 0)
|
||||
n, err := responderStack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n < 14+20+8+dns.SizeHeader {
|
||||
t.Error("expected response", n)
|
||||
}
|
||||
n, err = responderStack.Encapsulate(buf[:], -1, 0)
|
||||
n, err = responderStack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else if n != 0 {
|
||||
|
||||
Reference in New Issue
Block a user