add stackbasic test

This commit is contained in:
soypat
2025-04-05 17:17:32 -03:00
parent ba9124b079
commit 70a3bbbe2f
4 changed files with 102 additions and 33 deletions
-31
View File
@@ -5,12 +5,10 @@ import (
"encoding/json"
"errors"
"fmt"
"log"
"log/slog"
"net/http"
"net/netip"
"net/url"
"time"
"github.com/soypat/lneto/internal"
)
@@ -73,35 +71,6 @@ func (h *HTTPTapClient) Write(b []byte) (int, error) {
func (h *HTTPTapClient) Close() error { return nil }
func (h *HTTPTapClient) HandleTap(buf []byte) (HandleTapResult, error) {
nread, err := tap.Read(buf[:])
if err != nil {
slogger.error("tap-err", slog.String("err", err.Error()))
log.Fatal(err)
} else if nread > 0 {
err = lStack.RecvEth(buf[:nread])
if err != nil {
slogger.error("recv", slog.String("err", err.Error()), slog.Int("plen", nread))
} else {
slogger.info("recv", slog.Int("plen", nread))
}
}
nw, err := lStack.HandleEth(buf[:])
if err != nil {
slogger.error("handle", slog.String("err", err.Error()))
} else if nw > 0 {
_, err = tap.Write(buf[:nw])
if err != nil {
log.Fatal(err)
} else {
slogger.info("write", slog.Int("plen", nw))
}
}
if nread == 0 && nw == 0 {
time.Sleep(5 * time.Millisecond)
}
}
type HTTPTapServer struct {
router *http.ServeMux
stack stack