Commit Graph

1642 Commits

Author SHA1 Message Date
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
9a55fe234f Merge pull request #648 from lucas-clemente/internalize-utils
make utils an internal package
2017-06-11 11:54:49 +02:00
Marten Seemann
21553272e7 fix Codecov for the internal package 2017-06-11 11:33:10 +02:00
Lucas Clemente
1ae8ead6ae Merge pull request #658 from lucas-clemente/fix-shlo
Fix unencrypted SHLO
2017-06-10 15:33:37 +02:00
Lucas Clemente
80f87e2fab Fix formatting 2017-06-10 15:33:07 +02:00
Marten Seemann
c0b09c8646 make utils an internal package 2017-06-09 22:28:40 +02:00
Lucas Clemente
24d9ed2769 Merge pull request #660 from lucas-clemente/timeouts
Increase test timeouts
2017-06-09 19:12:44 +02:00
Lucas Clemente
e43b91f633 Fix encryption of stream data
This commit splits up handling of the crypto stream and the other streams in the framer, crypto setup, and the packer.

- Crypto stream data is handled separately and should never be sent unencrypted or FW-secure. Fixes #544.
- Non-crypto stream data is only sent with FW encryption on the server and only with non-FW or FW encryption on the client. Fixes #611.

The crypto stream is current excluded from flow control (#657), but that shouldn't be an issue in practice for now.
2017-06-09 19:12:10 +02:00
Lucas Clemente
4ea2ccd526 Improve STOP_WAITING detection in packet packer 2017-06-09 19:12:10 +02:00
Lucas Clemente
86b329d7da Factor public header creation into a new function 2017-06-09 19:12:09 +02:00
Lucas Clemente
7c1ef9c340 Merge pull request #655 from lucas-clemente/mocks
Generate some mocks using gomock
2017-06-09 19:11:25 +02:00
Lucas Clemente
61c4faf4d1 Increase test timeouts 2017-06-09 16:56:14 +02:00
Lucas Clemente
c02f904479 Mock CPM everywhere using gomock 2017-06-09 12:38:07 +02:00
Lucas Clemente
d01f9880be Use gomocked CPM in the flowcontrol tests 2017-06-09 12:20:36 +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
Marten Seemann
6d15a4a31a Merge pull request #652 from lucas-clemente/accept-duplicate-packets
accept duplicate and delayed packets
2017-06-08 16:08:45 +02:00
Lucas Clemente
eeb2d8d821 Mock FlowControlManager using gomock 2017-06-08 16:06:31 +02:00
Marten Seemann
14fa2dc7dd accept duplicate and delayed packets
We used to reject duplicate and packets with packet numbers lower than
the LeastUnacked we received in a STOP_WAITING frame, because we didn't
accept overlapping stream data. For all other frames, duplicates never
were an issue. Now that we accept overlapping stream data, there's no
need to reject those packets, in fact, processing a delayed packet will
be beneficial for performance.
2017-06-08 15:41:16 +02:00
Lucas Clemente
94843e1919 Merge pull request #651 from lucas-clemente/simplify-streams
Remove unnecessary error return value in newStream
2017-06-08 11:42:22 +02:00
Lucas Clemente
1311629830 Remove unnecessary error return value in newStream 2017-06-08 11:09:11 +02:00
Lucas Clemente
df230ca1e2 Merge pull request #650 from lucas-clemente/timer
Extract timer wrapper out of the session
2017-06-07 23:16:00 +02:00
Lucas Clemente
d62703fc15 Extract timer wrapper out of the session 2017-06-07 20:07:16 +02:00
Lucas Clemente
7d1f3c6282 Merge pull request #646 from lucas-clemente/simplify-session
Simplification and refactoring of the session
2017-06-07 13:32:30 +02:00
Lucas Clemente
bfc4f36c81 Remove duplicate code in session creation 2017-06-07 11:41:03 +02:00
Lucas Clemente
f2959aa74a Simplify session closing 2017-06-07 11:41:03 +02:00
Marten Seemann
6be03b54d2 Merge pull request #645 from qdeconinck/fix-connection-stall-wuf-0
fix stalls when retransmitting connection-level Window Update Frames
2017-06-07 11:01:51 +02:00
Quentin De Coninck
48ed55a01d fix stalls when retransmitting connection-level Window Update Frames
When a Window Update Frame with streamID 0 is lost, we want to know
the receive window when retransmitting the frame. However, the connection
flow controller is not in streamFlowController, leading to map access errors
and then connections stalls since the sender is stuck by the not-updated
receive window it previously received.
2017-06-07 10:38:36 +02:00
Marten Seemann
a5be7c6928 Merge pull request #643 from lucas-clemente/fix-640
fix race condition when handling the header stream fails in h2quic client
2017-06-07 10:19:08 +02:00
Marten Seemann
05d7bc91ef fix race condition when handling the header stream fails in h2quic client 2017-06-06 17:08:00 +02:00
Lucas Clemente
500d9889f5 Merge pull request #637 from lucas-clemente/555-always-retransmit
Always send retransmissions, irrespective of congestion state
2017-06-06 14:35:44 +02:00
Lucas Clemente
e44298a9cc Always send retransmissions, irrespective of congestion state
This should probably only apply to RTOs, but we currently don't have a signal to distinguish them in the queue.
2017-06-06 13:16:33 +02:00
Lucas Clemente
5321723ef1 Merge pull request #639 from lucas-clemente/improve-drop-tests
Improve drop test scopes
2017-06-06 13:16:05 +02:00
Lucas Clemente
f33e12831e Improve drop test scopes 2017-06-06 11:45:18 +02:00
Lucas Clemente
67a5a1bda5 Merge pull request #635 from lucas-clemente/gosimple
Run gosimple on our tree
2017-06-06 09:49:37 +02:00
Lucas Clemente
4f93969101 Run gosimple on our tree 2017-06-06 09:33:46 +02:00
Marten Seemann
2f551a7cbe Merge pull request #631 from lucas-clemente/fix-620
simplify the dialing logic in the h2quic client, fix mutex in roundtripper held to long
2017-06-06 09:12:37 +02:00
Marten Seemann
c122428cb6 simply the dialing in the h2quic client
Fixes #620.
Dialing is now done lazily, when a request is executed.
2017-06-04 09:41:51 +02:00
Marten Seemann
c2a89e6b78 improve error message in the h2quic client 2017-06-03 17:41:17 +02:00
Marten Seemann
9054e5205f don't pass the roundtripper to the h2quic client 2017-06-02 23:08:14 +02:00
Marten Seemann
4d26d8bbd0 Merge pull request #630 from lucas-clemente/fix-521
add a quic.Config option to set the handshake timeout
2017-06-02 18:42:19 +02:00
Marten Seemann
4c3d4960bb privatize the h2quic client 2017-06-01 20:14:07 +02:00
Marten Seemann
37366ef882 add a handshake integration test for the handshake timeout 2017-06-01 20:08:07 +02:00
Marten Seemann
13a25a5ba5 use the correct error code for handshake timeouts 2017-06-01 20:02:57 +02:00
Marten Seemann
9040fd25e7 add a quic.Config option to set the handshake timeout 2017-06-01 19:47:28 +02:00
Marten Seemann
a025e89f03 Merge pull request #626 from lucas-clemente/fix-538
add tests measuring how many RTTs a handshake takes
2017-06-01 19:35:48 +02:00
Lucas Clemente
d7f7d234e7 Merge pull request #629 from twdkeule/add-multiple-drop-test
Added possibility to drop multiple packets in a row.

Fixes #575
2017-05-31 16:01:24 +02:00
Thomas De Keulenaer
0e0d62e809 Drop focus 2017-05-31 15:40:29 +02:00
Thomas De Keulenaer
a07eaac1fd Added possibility to drop multiple packets in a row. 2017-05-29 12:15:02 +02:00