Marten Seemann
489ea7fa1a
Merge pull request #997 from lucas-clemente/stream-refactoring
...
refactor sending of stream data
2017-12-08 22:55:42 +07:00
Marten Seemann
7e627d38ea
Merge pull request #999 from lucas-clemente/reject-version-0
...
reject packets with version 0 sent by the client
2017-12-08 22:54:08 +07:00
Marten Seemann
aa1d541fbd
Merge pull request #1000 from lucas-clemente/remove-getbyteorder
...
remove unused utils.GetByteOrder
2017-12-08 22:53:32 +07:00
Marten Seemann
e5a1a650b9
Merge pull request #1005 from julienschmidt/handleRequest
...
shorten blocking call of h2quic.Server.handleRequest
2017-12-08 16:16:29 +07:00
Julien Schmidt
feab6e8450
shorten blocking call of Server.handleRequest
2017-12-08 09:41:57 +01:00
Marten Seemann
8e8892b064
remove the SentFin method from the stream
...
When a FIN is dequeued from the stream by the streamFramer, it is
guaranteed to be sent out. There's no need to explicitely signal that to
the stream.
2017-12-08 14:05:16 +07:00
Marten Seemann
71af5758e2
remove the ShouldSendFin method from the stream
...
GetDataForWriting now has two return parameters: the data and if a FIN
should be sent.
2017-12-08 14:05:14 +07:00
Marten Seemann
085624be20
replace stream.LenOfDataForWriting by HasDataForWriting
...
The return value (the length of data for writing) was only used to
determine if the stream has data for writing. Therefore it's easier to
just return a bool.
No functional change expected.
2017-12-08 14:04:00 +07:00
Marten Seemann
f8cbb0ae03
remove unused utils.GetByteOrder
...
This function was needed when we supported both Q039 (using big endian
encoding) and ealier versions (using little endian encoding).
2017-12-08 11:33:40 +07:00
Marten Seemann
62a664f5f4
Merge pull request #967 from lucas-clemente/varint-encoding
...
implement the new varint frame types
2017-12-08 09:46:50 +07:00
Marten Seemann
d7ceebd644
implement parsing and writing of the new ACK frame
2017-12-08 09:35:55 +07:00
Marten Seemann
11f746a183
implement parsing and writing of the new STREAM frames
2017-12-08 09:20:47 +07:00
Marten Seemann
1a515d1371
implement the new variable integer length frame types
2017-12-08 09:18:54 +07:00
Marten Seemann
759b0d87b1
refactor packet unpacking
...
This replaces version.UsesMaxDataFrame by versoin.UsesIETFFrameFormat.
That way, we can have two separate code paths in the unpacker to unpack
either gQUIC frames or IETF frames.
2017-12-08 09:18:54 +07:00
Marten Seemann
0ac728f96e
implement the new variable integer length encoding
2017-12-08 09:18:54 +07:00
Marten Seemann
62b0d99dcd
reject packets with version 0 sent by the client
...
Version 0 is an invalid version. For packets sent by the server, it is
used to identify the Version Negotiation Packet.
2017-12-08 09:14:41 +07:00
Marten Seemann
2b5573fe82
Merge pull request #980 from lucas-clemente/stateless-retry
...
implement stateless handling of Initial packets for the TLS server
2017-12-08 09:05:58 +07:00
Marten Seemann
25a6dc9654
implement stateless handling of Initial packets for the TLS server
2017-12-08 08:45:54 +07:00
Marten Seemann
57c6f3ceb5
don't return the handshakeChan from the session constructor
2017-12-08 07:34:57 +07:00
Marten Seemann
c65f055ec1
Merge pull request #970 from lucas-clemente/fix-872
...
allow packet number 0
2017-12-07 21:46:57 +07:00
Marten Seemann
2905a37928
handle ACKs for packet number 0
2017-12-07 21:33:34 +07:00
Marten Seemann
0219193a07
accept packet 0 in the ReceivedPacketHandler and generate ACKs for it
2017-12-07 21:33:34 +07:00
Marten Seemann
f90029ef64
change ReceivedPacketHandler such that it can generate ACKs for packet number 0
2017-12-07 21:33:34 +07:00
Marten Seemann
a79e9ee35e
parse and write STOP_WAITING frames for packet number 0
2017-12-07 21:33:34 +07:00
Marten Seemann
6ce3336be5
parse and write ACKs that for packet number 0
2017-12-07 21:33:34 +07:00
Marten Seemann
cc3bfc1fa7
remove bug check for increasing packet number in SentPacketHandler
2017-12-07 21:33:34 +07:00
Marten Seemann
6695983a43
remove error var and internalize member variable in SentPacketHandler
2017-12-07 21:33:34 +07:00
Marten Seemann
196efa873d
Merge pull request #990 from lucas-clemente/fix-989
...
don't send a window update after the final offset was received
2017-12-07 18:55:19 +07:00
Marten Seemann
60a2534027
Merge pull request #992 from lucas-clemente/improve-client-tests
...
improve client tests
2017-12-07 18:48:39 +07:00
Marten Seemann
ea7ee4cd9f
Merge pull request #994 from lucas-clemente/fix-993
...
fix flaky Public Reset test
2017-12-07 18:42:34 +07:00
Marten Seemann
1fd5213f1a
Merge pull request #978 from lucas-clemente/fix-966
...
use the mint default cookie protector to generate cookies
2017-12-07 18:29:32 +07:00
Marten Seemann
f51cfe9fe3
don't send a window update after the final offset was received
...
Receiving a final offset means the peer is done sending on that stream,
and there's no need to grant additional flow control credit.
2017-12-07 18:22:39 +07:00
Marten Seemann
1c802fcf8c
improve client tests
...
This hopefully fixes the flaky tests on AppVeyor.
2017-12-07 18:21:59 +07:00
Marten Seemann
a29acbf960
fix flaky Public Reset test
2017-12-07 18:21:43 +07:00
Marten Seemann
7ba613c3b9
use the mint default cookie protector to encrypt and decrypt cookies
2017-12-07 18:20:22 +07:00
Marten Seemann
851b44c905
Merge pull request #995 from lucas-clemente/mint-stateless-retry
...
fix the crypto setup so that it works with the recent mint changes
2017-12-07 18:14:57 +07:00
Marten Seemann
80a827f133
fix the crypto setup so that it works with the recent mint changes
...
mint now supports stateless retries, and requires that the cookie
protector is set in the mint.Config and returns a new alert when a
retry is performed.
2017-12-07 13:49:45 +07:00
Marten Seemann
19032b7f4b
Merge pull request #985 from lucas-clemente/fix-984
...
add an integration tests concurrently opening and closing many streams
2017-12-06 17:22:07 +07:00
Marten Seemann
4862f09b79
Merge pull request #962 from lucas-clemente/fix-871
...
send reserved version numbers
2017-12-06 17:21:49 +07:00
Marten Seemann
ff17ef79fe
Merge pull request #987 from julienschmidt/handleHeaderStream
...
remove superfluous goroutine
2017-12-06 17:21:12 +07:00
Marten Seemann
663f1b9526
Merge pull request #988 from julienschmidt/encryptionLevel
...
remove unused encryptionLevel from client
2017-12-06 17:05:57 +07:00
Julien Schmidt
06c87af606
remove unused encryptionLevel from client
2017-12-06 10:51:28 +01:00
Julien Schmidt
54b62fb4a5
remove superfluous goroutine
2017-12-06 10:44:37 +01:00
Marten Seemann
39b7a7e0a9
add an integration tests concurrently opening and closing many streams
2017-12-06 10:24:39 +07:00
Marten Seemann
8c2404edf5
send a reserved version number in the SHLO
2017-12-06 10:20:22 +07:00
Marten Seemann
1a3852aec6
send a reserved version number in the EncryptedExtensions message
2017-12-06 10:20:22 +07:00
Marten Seemann
be29963637
send a reserved version number in version negotiation packets
2017-12-06 10:20:22 +07:00
Marten Seemann
1f5cd31569
implement a function to get version slices containing reserved versions
2017-12-06 10:20:16 +07:00
Marten Seemann
3e41cf9ba1
Merge pull request #963 from lucas-clemente/disable-conn-migration
...
disable connection migration
2017-12-06 10:00:58 +07:00
Marten Seemann
13b9bfb1b5
Merge pull request #974 from lucas-clemente/fix-972
...
implement the recent changes to the version negotiation packet
2017-12-06 09:51:43 +07:00