Retransmit active-open SYN after RTO (#130)

* added: sync packet retransmission

* test: sync packet retransmission

* refactor: remove packet time from tcppool

* fix: return comment

* refactor: move retrying to stackRetrying

* added: retries & timeout to stackGoConfig

* test: test retries stack

* refactor: move StackRetrying to stackBlocking

* fix: line gofmt

---------

Co-authored-by: Pat Whittingslow <graded.sp@gmail.com>
This commit is contained in:
TuteMthCD
2026-06-23 00:19:16 -03:00
committed by GitHub
parent a0a5336108
commit d5ea2efdf4
7 changed files with 256 additions and 15 deletions
+16
View File
@@ -108,6 +108,22 @@ func (conn *Conn) RemotePort() uint16 {
return conn.h.RemotePort()
}
// IsAwaitingControl reports whether the connection is waiting for a response to
// a control segment that can be retransmitted to advance connection state.
func (conn *Conn) IsAwaitingControl() bool {
conn.mu.Lock()
defer conn.mu.Unlock()
return conn.h.IsAwaitingControl()
}
// RequeueControl asks the next packet emission to retransmit the outstanding
// control segment, if the connection is waiting for one.
func (conn *Conn) RequeueControl() {
conn.mu.Lock()
defer conn.mu.Unlock()
conn.h.RequeueControl()
}
// RemoteAddr returns the address of the peer Conn is exchanging data with.
func (conn *Conn) RemoteAddr() []byte {
conn.mu.Lock()