def test_params_unknown(self): # fb.mvfst.net sends a proprietary parameter 65280 data = binascii.unhexlify( "006400050004800104000006000480010400000700048001040000040004801" "0000000080008c0000000ffffffff00090008c0000000ffffffff0001000480" "00ea60000a00010300030002500000020010616161616262626263636363646" "46464ff00000100") # parse buf = Buffer(data=data) params = pull_quic_transport_parameters(buf) self.assertEqual( params, QuicTransportParameters( idle_timeout=60000, stateless_reset_token=b"aaaabbbbccccdddd", max_packet_size=4096, initial_max_data=1048576, initial_max_stream_data_bidi_local=66560, initial_max_stream_data_bidi_remote=66560, initial_max_stream_data_uni=66560, initial_max_streams_bidi=4294967295, initial_max_streams_uni=4294967295, ack_delay_exponent=3, ), )
def test_params(self): data = binascii.unhexlify( "004700020010cc2fd6e7d97a53ab5be85b28d75c80080008000106000100026" "710000600048000ffff000500048000ffff000400048005fffa000a00010300" "0b0001190003000247e4") # parse buf = Buffer(data=data) params = pull_quic_transport_parameters(buf) self.assertEqual( params, QuicTransportParameters( idle_timeout=10000, stateless_reset_token= b"\xcc/\xd6\xe7\xd9zS\xab[\xe8[(\xd7\\\x80\x08", max_packet_size=2020, initial_max_data=393210, initial_max_stream_data_bidi_local=65535, initial_max_stream_data_bidi_remote=65535, initial_max_stream_data_uni=None, initial_max_streams_bidi=6, initial_max_streams_uni=None, ack_delay_exponent=3, max_ack_delay=25, ), ) # serialize buf = Buffer(capacity=len(data)) push_quic_transport_parameters(buf, params) self.assertEqual(len(buf.data), len(data))
def test_params_disable_migration(self): data = binascii.unhexlify("0004000c0000") # parse buf = Buffer(data=data) params = pull_quic_transport_parameters(buf) self.assertEqual(params, QuicTransportParameters(disable_migration=True)) # serialize buf = Buffer(capacity=len(data)) push_quic_transport_parameters(buf, params) self.assertEqual(buf.data, data)