Skip to content

Commit

Permalink
Go to COOKIE_WAIT after T1-init start
Browse files Browse the repository at this point in the history
  • Loading branch information
edaniels committed Mar 6, 2024
1 parent 735a4c6 commit 80ec14e
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion association.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,6 @@ func (a *Association) init(isClient bool) {
go a.writeLoop()

if isClient {
a.setState(cookieWait)
init := &chunkInit{}
init.initialTSN = a.myNextTSN
init.numOutboundStreams = a.myMaxNumOutboundStreams
Expand All @@ -398,6 +397,11 @@ func (a *Association) init(isClient bool) {
a.log.Errorf("[%s] failed to send init: %s", a.name, err.Error())
}

// After sending the INIT chunk, "A" starts the T1-init timer and enters the COOKIE-WAIT state.
// Note: ideally we would set state after the timer starts but since we don't do this in an atomic
// set + timer-start, it's safer to just set the state first so that we don't have a timer expiration
// race.
a.setState(cookieWait)
a.t1Init.start(a.rtoMgr.getRTO())
}
}
Expand Down Expand Up @@ -1175,6 +1179,7 @@ func (a *Association) handleInit(p *packet, i *chunkInit) ([]*packet, error) {
outbound.destinationPort = a.destinationPort

initAck := &chunkInitAck{}
a.log.Debug("sending INIT ACK")

initAck.initialTSN = a.myNextTSN
initAck.numOutboundStreams = a.myMaxNumOutboundStreams
Expand Down

0 comments on commit 80ec14e

Please sign in to comment.