diff --git a/internet/basicstack.go b/internet/basicstack.go index a83b7ac..865b01d 100644 --- a/internet/basicstack.go +++ b/internet/basicstack.go @@ -33,6 +33,10 @@ func (sb *StackBasic) SetAddr(addr netip.Addr) { sb.ip = addr.As4() } +func (sb *StackBasic) Addr() netip.Addr { + return netip.AddrFrom4(sb.ip) +} + func (sb *StackBasic) Recv(frame []byte) error { ifrm, err := ipv4.NewFrame(frame) if err != nil { diff --git a/internet/stackbasic_test.go b/internet/stackbasic_test.go index e640289..12a75c8 100644 --- a/internet/stackbasic_test.go +++ b/internet/stackbasic_test.go @@ -12,15 +12,20 @@ func TestBasicStack(t *testing.T) { var connCl, connSv TCPConn setupClientServer(t, rng, &sbCl, &sbSv, &connCl, &connSv) var buf [2048]byte - n, err := sbCl.Handle(buf[:]) + expectExchange(t, &sbCl, &sbSv, buf[:]) + +} + +func expectExchange(t *testing.T, from, to *StackBasic, buf []byte) { + n, err := from.Handle(buf) if err != nil { - t.Fatal(err) + t.Error(err) } else if n == 0 { - t.Fatal("expected data exchange") + t.Error("expected data exchange") } - err = sbSv.Recv(buf[:n]) + err = to.Recv(buf[:n]) if err != nil { - t.Fatal(err) + t.Error(err) } }