Commit Graph

630 Commits

Author SHA1 Message Date
Marten Seemann
2976a3ee19 fix pacing rate
The pacing rate needs to be calculated for the next packet to be sent,
not for the next byte to be sent.
2019-04-07 13:11:36 +09:00
Marten Seemann
907071221c Merge pull request #1846 from lucas-clemente/fix-crypto-setup-race-condition
fix race condition when accessing the encryption level in crypto setup
2019-04-02 00:23:53 +09:00
Marten Seemann
9ffbd662c1 fix race condition when accessing the encryption level in crypto setup 2019-04-02 00:13:22 +09:00
Marten Seemann
66615797e7 Merge pull request #1840 from lucas-clemente/invalid-max-streams-values
error on invalid maximum stream number values
2019-04-01 05:15:52 +02:00
Marten Seemann
e9f7f87063 remove two stray TODOs from the crypto setup 2019-04-01 12:04:19 +09:00
Marten Seemann
7b02b87026 reject MAX_STREAMS frames with too large stream counts 2019-04-01 11:57:23 +09:00
Marten Seemann
a6d1917417 make sure the same session ticket key is used if none is configured 2019-04-01 11:45:20 +09:00
Marten Seemann
2adf923ee6 process the NewSessionTicket TLS message 2019-04-01 11:45:20 +09:00
Marten Seemann
da4b3e3176 pass a conn to qtls that returns the remote address 2019-04-01 11:45:20 +09:00
Marten Seemann
b2723d6d13 make the ClientSessionCache work with qtls 2019-04-01 11:45:16 +09:00
Marten Seemann
9ddf9129cf move generation of qtls.Config to a separate file, add tests 2019-04-01 11:41:06 +09:00
Marten Seemann
358fce241a Merge pull request #1841 from lucas-clemente/vnp-quic-bit
set the QUIC bit in Version Negotiation packets
2019-03-31 18:29:26 +02:00
Marten Seemann
09574a6653 expose the tls.ConnectionState 2019-03-31 23:56:24 +09:00
Marten Seemann
352ac45e32 set the QUIC bit in Version Negotiation packets 2019-03-29 09:20:41 +01:00
Marten Seemann
d44c81de7a remove verification of version negotiation 2019-03-23 11:26:20 +01:00
Marten Seemann
3264d7c583 fix logging of transport parameters without stateless reset tokens 2019-03-19 16:58:08 +09:00
Marten Seemann
f103919bf1 fix handling of HelloRetryRequests 2019-03-14 16:47:09 +09:00
Marten Seemann
e4bd715728 Merge pull request #1814 from lucas-clemente/stateless-resets
implement sending of stateless resets
2019-03-08 18:54:13 +09:00
Marten Seemann
6cf20310fe use an array for the stateless reset token in the transport parameters 2019-03-08 18:09:37 +09:00
Marten Seemann
79cd3235f8 log the stateless reset token in the transport parameters 2019-03-08 18:08:09 +09:00
Marten Seemann
5b27076a4c return the local TLS error, but don't send it on the wire 2019-03-08 18:02:43 +09:00
Marten Seemann
ae12852e4c add a message to crypto errors
The string representation varies depending on the message:
* if there's no message, the TLS alert is used
* if there's a message, it is used instead
2019-03-08 18:02:43 +09:00
Marten Seemann
373db3c153 send the correct error code for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
f9a21275a4 use the string representation of the TLS alert for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
e5303df419 implement a string representation for crypto error 2019-03-08 18:02:36 +09:00
Marten Seemann
ab47ba1021 fix error string representation for errors without a message 2019-03-08 17:35:25 +09:00
Marten Seemann
662041649f use the error names from the draft 2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
896d2da380 Merge pull request #1805 from lucas-clemente/return-timeout-errors
consistently return timeout errors after timeouts
2019-03-05 17:31:48 +09:00
Marten Seemann
9ed1a2e3e1 add integration test that we return timeout errors after an idle timeout 2019-03-05 16:22:48 +09:00
Marten Seemann
5e34cb1d71 run go generate ./... 2019-03-05 13:42:56 +09:00
Marten Seemann
59e9142426 retrieve the TLS alert from qtls when the handshake fails 2019-03-02 08:56:42 +09:00
Marten Seemann
fbe8844006 remove some unneccessary type conversions 2019-02-27 19:30:55 +09:00
Marten Seemann
4ae5e1908c Merge pull request #1794 from lucas-clemente/coalesced-packets
move coalesced packet handling to the session
2019-02-27 09:20:16 +08:00
Marten Seemann
6c726ccba3 change the idle timeout transport parameter to milliseconds 2019-02-23 10:37:08 +08:00
Marten Seemann
df34e4496e identify version negotiation packets without parsing the header 2019-02-23 10:24:42 +08:00
Marten Seemann
14426dfa12 implement a function to parse the destination connection ID of a packet 2019-02-23 10:24:42 +08:00
Marten Seemann
28ed85b9c6 move cutting of coalesced packets to the wire package 2019-02-23 10:24:42 +08:00
Marten Seemann
d82a60c835 copy the GetConfigForClient callback when creating the qtls.Config 2019-02-22 14:34:28 +08:00
Marten Seemann
791b90d4d5 copy the GetCertificate callback when creating the qtls.Config 2019-02-22 14:04:49 +08:00
Marten Seemann
500717066e use (a modified version of) the standard library TLS implementation 2019-02-22 13:33:56 +08:00
Marten Seemann
f6642ff948 use separate packet number spaces for sending packets
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
b35c161f2e don't ignore reordered ACKs 2019-02-11 20:13:05 +08:00
Marten Seemann
631947ad7d use shorter variable name in the sent packet handler 2019-02-11 20:13:05 +08:00
Marten Seemann
c7f1fce88a set the default value for the ack_delay_exponent, if it is not sent 2019-02-08 13:50:49 +08:00
Marten Seemann
7dc4be2ce9 Merge pull request #1779 from lucas-clemente/remove-tls-received-extensions-error
remove the error return value when receiving TLS extensions
2019-02-07 20:51:57 +08:00
Marten Seemann
26afc7a4ca remove the error return value when receiving TLS extensions 2019-02-07 12:43:29 +08:00
Marten Seemann
b24b8e6926 implement sending of post-handshake crypto messages 2019-02-06 23:05:43 +08:00
Marten Seemann
e7ed5e3c92 implement the crypto stream for post-handshake crypto messages 2019-02-06 22:51:44 +08:00
Marten Seemann
17f4ebad64 handle Retry packets in the session 2019-02-04 15:38:47 +08:00