mirror of
https://github.com/soypat/lneto.git
synced 2026-08-08 17:03:40 +00:00
add tcpclient to aid debugging
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -21,6 +21,7 @@ var (
|
||||
)
|
||||
|
||||
type TCPConn struct {
|
||||
// deprecated: here for debugging purposes only.
|
||||
h tcp.Handler
|
||||
remoteAddr []byte
|
||||
|
||||
|
||||
Reference in New Issue
Block a user