Marten Seemann
a8b603b7bf
don't negotiate the idle timeout
...
The idle timeout doesn't need to be negotiated, simply announcing it to
the peer is sufficient. We now close the session if there's no incoming
network activity for the duration of the local idle timeout, and we
send a PING frame after half the remote idle timeout (if keep alives are
enabled).
2017-10-02 18:16:27 -07:00
Marten Seemann
a136ceffeb
implement the validation of the version negotiation for the client
2017-10-02 13:51:38 +07:00
Marten Seemann
e01eb322e4
implement the validation of the version negotiation for the server
2017-10-02 13:16:01 +07:00
Marten Seemann
a2988bce8d
send versions in ClientHello and EncryptedExtensions TLS parameters
...
It only sends the right values now, but doesn't yet perform any
validation.
2017-10-02 12:50:17 +07:00
Marten Seemann
6f3d3919df
use separate constructors for client and server for the TLS crypto setup
2017-10-02 11:11:42 +07:00
Marten Seemann
474b036474
Merge pull request #858 from lucas-clemente/omit-instead-of-truncate-connection-id
...
rename connection ID truncation to connection ID omission
2017-09-30 20:40:12 +07:00
Marten Seemann
9cb7480050
rename connection ID truncation to connection ID omission
2017-09-29 22:52:54 +07:00
Marten Seemann
dc6d1b6822
send the maximum packet size in the TLS transport parameters
2017-09-29 22:08:12 +07:00
Marten Seemann
4cbdced106
send the transport parameters in the TLS handshake
2017-09-29 17:35:22 +07:00
Marten Seemann
c95f2054a8
rename the ConnectionParametersManager to ParamsNegotiator
2017-09-28 18:15:33 +07:00
Marten Seemann
ebb4150e63
separate connection parameters negotiation and gQUIC handshake parsing
2017-09-28 18:15:32 +07:00
Marten Seemann
95901cdee4
initialize the connection parameters manager in the crypto setup
2017-09-28 18:15:32 +07:00
Marten Seemann
c852814973
Merge pull request #849 from lucas-clemente/version-stringer
...
implement a string representation of the version number
2017-09-28 15:51:12 +07:00
Marten Seemann
c858461b79
Merge pull request #851 from lucas-clemente/lowercase-log-level
...
accept lower case log levels for the QUIC_GO_LOG_LEVEL flag
2017-09-28 15:35:43 +07:00
Marten Seemann
6dde979f8f
implement a string representation of the version number
...
This will be useful as soon as we start supporting non-gQUIC versions.
2017-09-28 15:19:12 +07:00
Marten Seemann
d0a94bb8be
use mockgen source mode instead of reflect mode
...
In reflect mode, mockgen imports the package. Since we recently made
the packages internal, this fails, so we have to use source mode instead.
2017-09-28 15:18:14 +07:00
Marten Seemann
9633ffa06f
accept lower case log levels for the QUIC_GO_LOG_LEVEL flag
2017-09-28 15:12:21 +07:00
Marten Seemann
e729701a94
drop support for version 36
2017-09-25 20:07:34 +07:00
Marten Seemann
2e9bc93b0c
use the mockAEAD as nullAEAD in the crypto setup tests
2017-09-25 20:06:29 +07:00
Marten Seemann
8dbd60a095
drop support for QUIC 35
2017-09-25 19:55:25 +07:00
Marten Seemann
e6ebe89c1e
Merge pull request #840 from lucas-clemente/version-uses-tls
...
define a function to tell if a QUIC version uses the TLS 1.3 handshake
2017-09-22 21:47:59 +07:00
Marten Seemann
cd957e24d3
Merge pull request #841 from lucas-clemente/shorten-ack-variable-names
...
shorten variable names in the AckRange struct
2017-09-22 21:25:22 +07:00
Marten Seemann
8312e766ed
define a function to tell if a QUIC version uses the TLS 1.3 handshake
2017-09-22 19:47:08 +07:00
Marten Seemann
19f1293fe2
shorten variable names in the AckRange struct
2017-09-22 19:34:53 +07:00
Marten Seemann
265c35c2eb
rename the STK to Cookie
2017-09-22 18:58:04 +07:00
Marten Seemann
14fae7b6d3
rename the STKGenerator to CookieGenerator
2017-09-22 18:58:03 +07:00
Marten Seemann
e603715949
make handshake and crypto internal packages
2017-09-21 11:52:21 +07:00
Marten Seemann
d9b9d83458
remove unused duplicate packet detection in the ackHandler
2017-09-14 17:55:55 +07:00
Marten Seemann
8bcabe0ba9
correctly pack packets with sealers with different overheads
2017-09-08 12:04:45 +03:00
Marten Seemann
23f3432b9d
select the right null AEAD algorithm depending on the version
2017-09-07 20:07:54 +03:00
Marten Seemann
bf64c86916
remove accidentally committed merge backup file
2017-09-05 19:27:46 +02:00
Marten Seemann
60f5c660c6
export flow control window sizes as uint64 in quic.Config
2017-08-31 16:37:03 +07:00
Marten Seemann
95a971f322
make the flow control package internal
2017-08-30 00:27:44 +07:00
Marten Seemann
f1ada87dcf
make the protocol package internal
2017-08-30 00:19:44 +07:00
Marten Seemann
524ecb5827
move the Public Reset to the wire package
2017-08-29 23:58:27 +07:00
Marten Seemann
ed522ebbce
make wire an internal package
2017-08-29 23:51:56 +07:00
Marten Seemann
dd0daaaf1e
implement version-dependent parsing of the Public Header
2017-08-23 16:00:45 +07:00
Marten Seemann
604c6ae406
implement an utils.BigEndian
2017-08-23 15:57:35 +07:00
Marten Seemann
05fde42e2d
panic if the value for WriteUint48, WriteUint40, WriteUint24 is too big
...
Note that it's not possible to write a couple of frame types for packet
numbers that don't fit into 6 bytes. The IETF QUIC draft fixes this.
2017-08-23 15:57:35 +07:00
Marten Seemann
2330ac0497
introduce an utils.LittleEndian
2017-08-23 15:57:35 +07:00
Lucas Clemente
8ec11c0b53
Move testdata/ to internal/
2017-08-18 12:06:36 +02:00
Marten Seemann
beadeb9da7
use sort.Slice to sort the tags in the handshake message
...
sort.Slice was added in Go 1.8. Now that we've dropped support for Go
1.7, we can make use of it.
2017-08-02 12:00:52 +07:00
Marten Seemann
33260d91a2
fix timestamp test such that it works in all timezones
2017-07-15 11:23:42 +07:00
Marten Seemann
03ee31d26b
make the log level env variable a string
2017-06-11 12:01:38 +02:00
Marten Seemann
7bad019ac2
order log levels ascending
...
Make the log level numbers more intuitive. Logging nothing is now log
level 0, debug logging is level 3.
2017-06-11 12:01:37 +02:00
Marten Seemann
c0b09c8646
make utils an internal package
2017-06-09 22:28:40 +02:00
Lucas Clemente
8b6a662223
Move flow control mocks to a separate package
...
This allows the other mocks to be used in the FC tests.
2017-06-09 12:08:26 +02:00
Lucas Clemente
050358bbc5
Mock CPM in streams map using gomock
2017-06-09 11:58:09 +02:00
Lucas Clemente
eeb2d8d821
Mock FlowControlManager using gomock
2017-06-08 16:06:31 +02:00