Commit Graph

64 Commits

Author SHA1 Message Date
Pat Whittingslow 7698b9fb81 do not rely on unspecified Go behaviour; fix TCP ring buffer bug (#16)
* do not rely on unspecified Go behaviour; fix TCP ring buffer bug

* even more stricter error handling on tcp connections

* stricter lock copying in tcp.Conn, even though likely not a problem

* add listener and tcp pool logging

* forgot reqAddr unused

* add logging to TCPConn and friends
2026-01-05 10:03:24 -03:00
Pat Whittingslow 018f9258ac Add tcp.Listener (#15)
* begin reviewing TCP listener

* begin adding listener tests

* adding TestExchange implementation

* split out legacy and Step tests

* move listener to tcp package

* fix up tcp tests taking very long

* add xnet.TCPPool and work on TCPPool semantics

* xnet: TCPPool only accepts established connections

* xnet: getting to bottom of panic in xnet.Listener

* xnet: improve listener tests

* fix several data races in testing fixtures

* fix more synchronization things in listener test

* finalize tcplistener test
2026-01-03 12:41:57 -03:00
Patricio Whittingslow c6e88b1c3b tcp.Conn:add Flush method and more lock protection 2026-01-01 10:32:13 -03:00
ddirect 6f3da983b0 Conn: fixed double mutex lock in SetDeadline 2025-11-30 16:51:42 +02:00
Patricio Whittingslow 1554b89a08 StackNode refactor: add offsetToIP argument to Encapsulate 2025-12-19 00:38:28 -03:00
Patricio Whittingslow 7042a653a6 add lock to tcp.Conn; claude Fix ARP handler not responding after DHCP
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-09 14:16:23 -03:00
Patricio Whittingslow e3c6d68288 rigurously fix all tests 2025-11-05 20:12:02 -03:00
Patricio Whittingslow f5157e7e4a huge fixes to ring buffer implementations and mostly passing tests 2025-11-05 19:21:30 -03:00
Patricio Whittingslow 5e5f21a2b8 rethinking ring buffer semantics and breaking everything in the process 2025-11-05 02:35:53 -03:00
Patricio Whittingslow 82bd54a6da add faulty appendString method to rtx 2025-11-04 00:52:02 -03:00
Patricio Whittingslow 2b79b6a314 use sentlist in ringTx implementation and back to square 1 2025-11-03 23:51:05 -03:00
soypat 72047b8ae9 add test for sentlist 2025-11-03 19:04:23 -03:00
Patricio Whittingslow 26ef39ecc3 add sentlist 2025-10-30 23:32:22 -03:00
Patricio Whittingslow 71cf99dcb8 early return on partial packet ack 2025-10-29 18:06:38 -03:00
Patricio Whittingslow 46137bbbec begin adding TxQueue failing multipacket test 2025-10-27 23:21:41 -03:00
Patricio Whittingslow 6b3a2c429c found failing case for multipacket 2025-10-27 00:23:57 -03:00
Patricio Whittingslow ed81d7446d fix client reset state; add multi send tests 2025-10-26 20:45:23 -03:00
soypat 3fa2f32737 fix timewait not counting as closed state in listen open; add second part to test 2025-10-24 18:26:59 -03:00
Patricio Whittingslow 92a245957b keep working on xnet TCP 2025-10-23 21:18:25 -03:00
soypat 407f4a08f1 enhance xnet StackAsync test and add non-linux stubs for Tap and Bridge 2025-10-21 21:46:44 -03:00
soypat 0f20090d78 bugfix: use ISS on active TCP connection 2025-08-16 18:26:50 -03:00
soypat 9cf4e35d2e changes to TCP stack to enable xnet functionality 2025-08-16 15:17:46 -03:00
soypat 77bdc4c448 more consistent argument ordering for tcp.Conn.Open call; DHCP client now sets ClientID correctly from config 2025-07-21 18:39:31 -03:00
soypat 1fcde05284 begin touching up a DNS Client implementation; internal.GetIP/SetIP refactor 2025-06-21 01:29:38 -03:00
soypat 2133966a16 add dhcp failing test 2025-06-17 02:07:11 -03:00
soypat 29ac9a3a1a begin adding NTP client node 2025-06-12 02:19:52 -03:00
soypat 6b511999d1 begin testing tcp listener (not working) 2025-06-09 20:38:40 -03:00
soypat 9a60642283 mega refactor internet.TCPConn->tcp.Conn 2025-06-07 20:43:20 -03:00
soypat c635bde512 all in on StackNode refactor: Encapsulate/Demux on all stacks+ConnID+more abstraction 2025-06-06 01:23:44 -03:00
soypat 6ba727a0ef more effort into understanding why TAP interface is so slow on my linux machine to no avail 2025-06-05 00:47:07 -03:00
soypat 2d71907241 fix TCP flags not being extracted from capture correctly 2025-06-03 00:45:11 -03:00
soypat 55bc765d92 begin adding packet capture functionality 2025-06-01 13:04:43 -03:00
soypat a29bad9ac9 begin working on making response quicker (why is tap interface so slow?) 2025-06-01 01:29:07 -03:00
soypat 1acc5f70cd HTTP EXCHANGE SUCCESS 2025-05-31 14:51:30 -03:00
soypat 6c65764070 add maximum segment size option on TCP connection init 2025-05-30 21:33:12 -03:00
soypat a967f083cb add TCPConn Read+Write and ancilliary methods; looks like IP mux is broken 2025-05-25 18:30:55 -03:00
soypat c94337317f document everything 2025-05-13 23:49:13 -03:00
soypat 39d5e4290e add TCPConn type 2025-04-04 19:16:26 -03:00
soypat d5d729b961 refactor lneto2->lneto package 2025-03-06 23:11:42 -03:00
soypat d04d287ab6 clean up tcp package; add Abort method 2025-02-24 09:25:55 -03:00
soypat d996040d92 add stringer methods 2025-02-20 23:41:27 -03:00
soypat c9d1c4f239 implement sophisticated TAP interface to be able to debug stack on linux 2025-02-20 18:51:31 -03:00
soypat f86bb6f01a remove legacy remnants and move ip,udp,ethernet logic into subpackages 2025-02-20 16:00:55 -03:00
soypat 523f609761 now supports partial packet acks 2025-02-16 14:47:02 -03:00
soypat 8a5f6f3f6d tcp:txqueue: rewrite RecvAck logic 2025-02-16 12:42:22 -03:00
soypat 00cdf471f4 rewrite txqueue sequencing logic to use per-packet sequence numbers 2025-02-15 17:02:10 -03:00
soypat 2e823c0fd5 begin add tcp.Handler tests 2025-02-15 11:15:19 -03:00
soypat 6b91d8e510 handle clientsynseg 2025-02-13 23:19:19 -03:00
soypat bbd74d04d8 rewrite ControlBlock.Open to only open passive connections; now use Send for active connections 2025-02-13 22:56:27 -03:00
soypat 0cb43c47a4 tcpHandler looks rounded off, add to example 2025-02-10 20:26:02 -03:00