add tcpclient to aid debugging

This commit is contained in:
soypat
2025-05-30 20:26:55 -03:00
parent 3aa3fa6b2d
commit 0f4478cc32
3 changed files with 64 additions and 2 deletions
+20 -2
View File
@@ -49,7 +49,11 @@ func main() {
if err != nil {
log.Fatal(err)
}
// h := &handler.H
// _ = h.AwaitingSynAck()
// _ = h.AwaitingSynResponse()
// _ = h.AwaitingSynSend()
// _ = h
err = handler.OpenListen(addrPort.Port(), iss)
if err != nil {
log.Fatal(err)
@@ -57,7 +61,7 @@ func main() {
tap := ltesto.NewHTTPTapClient("http://127.0.0.1:7070")
defer tap.Close()
tap.ReadDiscard() // Discard all unread content.
fmt.Println("hosting server at ", addrPort.String())
var buf [mtu]byte
var hdr httpraw.Header
@@ -68,6 +72,7 @@ func main() {
log.Fatal(err)
} else if nread > 0 {
debugEthPacket(nil, "IN ", buf[:nread])
fmt.Println("INHEX ", debugHex(buf[:nread]))
err = lStack.RecvEth(buf[:nread])
if err != nil {
slogger.error("recv", slog.String("err", err.Error()), slog.Int("plen", nread))
@@ -78,6 +83,7 @@ func main() {
if err != nil {
slogger.error("handle", slog.String("err", err.Error()))
} else if nw > 0 {
fmt.Println("OUTHEX ", debugHex(buf[:nread]))
_, err = tap.Write(buf[:nw])
if err != nil {
log.Fatal(err)
@@ -326,3 +332,15 @@ func debugEthPacket(logger *slog.Logger, prefix string, b []byte) {
fmt.Println("PAYLOAD:", string(payload))
}
}
func debugHex(b []byte) string {
var d []byte
for i := 0; i < len(b); i++ {
c1 := tblhex[b[i]&0xf]
c2 := tblhex[b[i]>>4]
d = append(d, c2, c1, ' ')
}
return string(d)
}
const tblhex = "0123456789abcdef"
+43
View File
@@ -0,0 +1,43 @@
package main
import (
"fmt"
"net"
"os"
"github.com/soypat/lneto/http/httpraw"
)
func main() {
if err := run(); err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println("DONE")
}
func run() error {
fmt.Println("dialing...")
conn, err := net.DialTCP("tcp4", &net.TCPAddr{IP: []byte{192, 168, 10, 1}, Port: 1337}, &net.TCPAddr{IP: []byte{192, 168, 10, 2}, Port: 80})
if err != nil {
return err
}
fmt.Println("reading...")
var hdr httpraw.Header
for {
_, err = hdr.ReadFromLimited(conn, 1024)
if err != nil {
return err
}
const asRequest = false
var ok bool
ok, err = hdr.TryParse(asRequest)
if ok {
break
} else if err != nil {
return err
}
}
fmt.Println("got HTTP:\n", hdr.String())
return nil
}
+1
View File
@@ -21,6 +21,7 @@ var (
)
type TCPConn struct {
// deprecated: here for debugging purposes only.
h tcp.Handler
remoteAddr []byte