Skip to content

Commit

Permalink
Adds a scenario that checks what packets get sent (if any) after clos…
Browse files Browse the repository at this point in the history
…ing the connection, fixes #15
  • Loading branch information
mpiraux committed Apr 28, 2020
1 parent bb8dad8 commit 5b4b9af
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
49 changes: 49 additions & 0 deletions scenarii/closed_connection.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package scenarii

import (
qt "github.com/QUIC-Tracker/quic-tracker"
"time"
)

const (
CCS_TLSHandshakeFailed = 1
CCS_NoPacketsReceived = 2
CSS_APacketWasReceived = 3
)

type ClosedConnectionScenario struct {
AbstractScenario
}

func NewClosedConnectionScenario() *ClosedConnectionScenario {
return &ClosedConnectionScenario{AbstractScenario{name: "closed_connection", version: 1}}
}
func (s *ClosedConnectionScenario) Run(conn *qt.Connection, trace *qt.Trace, preferredPath string, debug bool) {
connAgents := s.CompleteHandshake(conn, trace, CCS_TLSHandshakeFailed)
if connAgents == nil {
return
}
<-time.NewTimer(time.Duration(2 * conn.SmoothedRTT) * time.Microsecond).C
conn.CloseConnection(false, 0, "")
<-time.NewTimer(time.Duration(8 * conn.SmoothedRTT) * time.Microsecond).C

incomingPackets := conn.IncomingPackets.RegisterNewChan(1000)

for i := 0; i < 3; i++ {
ping := qt.PingFrame(0)
conn.FrameQueue.Submit(qt.QueuedFrame{&ping, qt.EncryptionLevel1RTT})
<-time.NewTimer(time.Duration(3 * conn.SmoothedRTT) * time.Microsecond).C
}

trace.ErrorCode = CCS_NoPacketsReceived
for {
select {
case <-incomingPackets:
trace.ErrorCode = CSS_APacketWasReceived
case <-conn.ConnectionClosed:
return
case <-s.Timeout():
return
}
}
}
1 change: 1 addition & 0 deletions scenarii/scenario.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,6 @@ func GetAllScenarii() map[string]Scenario {
"connection_migration_v4_v6": NewConnectionMigrationv4v6Scenario(),
"zero_length_cid": NewZeroLengthCID(),
"multi_packet_client_hello": NewMultiPacketClientHello(),
"closed_connection": NewClosedConnectionScenario(),
}
}

0 comments on commit 5b4b9af

Please sign in to comment.