Marten Seemann
9608e8563f
only accept 3 retries
...
While the server is allowed to perform multiple Retries, the client
should impose a limit in order to avoid being caught in an endless loop.
2018-08-14 18:35:25 +07:00
Marten Seemann
872e1747f4
always use connection IDs longer than 8 bytes when sending a Retry
...
A server is allowed to perform multiple Retries. There's little to gain
from doing so, but it's something our API allows. If a server performs
multiple Retries, it must use a connection ID that's at least 8 bytes
long. Only if it doesn't perform any further Retries it is allowed to
use shorter IDs. Therefore, we're on the safe side by always using a
long connection ID.
This shouldn't have a performance impact, since the server changes the
connection ID to a short value with the first Handshake packet it sends.
2018-08-14 17:34:21 +07:00
Marten Seemann
829edc04ab
accept multiple Retries
2018-08-14 17:18:44 +07:00
Marten Seemann
58eae32bc9
Merge pull request #1477 from lucas-clemente/new-retry
...
implement the new Retry mechanism
2018-08-13 10:26:18 +07:00
Marten Seemann
70992684af
use server generated connection IDs when accepting a connection
2018-08-13 08:47:29 +07:00
Marten Seemann
77f5d30338
buffer writes to the crypto stream
...
mint performs a Write for every state change. This results in a lot of
small packets getting sent when using an unbuffered connection. By
buffering, we make sure that packets are filled up properly.
2018-08-13 08:47:29 +07:00
Marten Seemann
f88b7bb175
implement the new Retry mechanism
2018-08-13 08:47:29 +07:00
Marten Seemann
d8aa49d0f9
implement writing and parsing of the new Retry packet
2018-08-13 08:47:29 +07:00
Marten Seemann
e39251c8b5
implement writing and parsing of Initial packets containing a Token
2018-08-13 08:47:29 +07:00
Marten Seemann
2b3ae10b33
Merge pull request #1475 from lucas-clemente/improve-mockgen
...
improve mockgen
2018-08-13 08:22:00 +07:00
Marten Seemann
13ea994cc8
Merge pull request #1476 from lucas-clemente/update-mint
...
update mint
2018-08-13 08:20:49 +07:00
Marten Seemann
e34256beed
update mint
2018-08-12 15:26:40 +07:00
Marten Seemann
f9c1de5779
make it possible to generate mocks of private internal interfaces
2018-08-11 14:49:49 +07:00
Marten Seemann
76d4d43b50
move the mockgen cleanup commands to the mockgen script
2018-08-11 12:45:48 +07:00
Marten Seemann
b291b33bca
simplify the command line params of the mockgen script
2018-08-11 12:45:48 +07:00
Marten Seemann
04147d86da
rename the cryptoStreamI interface to cryptoStream
2018-08-11 12:45:43 +07:00
Marten Seemann
40050f558d
fix mockgen script
...
We don't need to copy the vendor directory.
2018-08-11 11:25:42 +07:00
Marten Seemann
a964f2d2ff
Merge pull request #1470 from lucas-clemente/fix-1452
...
use retransmissions as TLP packets
2018-08-10 08:17:12 +07:00
Marten Seemann
defafec71e
use retransmissions as TLP packets
2018-08-09 22:28:28 +07:00
Marten Seemann
bd23e1651d
Merge pull request #1472 from lucas-clemente/fix-spurious-loss-detection-alarm
...
don't do anything when OnAlarm is called, but no packets are outstanding
2018-08-09 22:27:18 +07:00
Marten Seemann
ada085dffb
Merge pull request #1464 from lucas-clemente/multiplexing
...
multiplex server and client on the same packet conn
2018-08-08 18:38:12 +07:00
Marten Seemann
83cb7cbe2e
add an integration test multiplexing server and client on the same conn
2018-08-08 17:34:08 +07:00
Marten Seemann
5358831604
don't do anything when OnAlarm is called, but no packets are outstanding
...
When all outstanding are acknowledged, the alarm is canceled in
updateLossDetectionAlarm. This doesn't reset the timer in the session
though. When OnAlarm is called, we therefore need to make sure that
there are actually packets outstanding.
2018-08-08 15:40:36 +07:00
Marten Seemann
b5d03d24a5
close the packet conn when a server created with ListenAddr is closed
2018-08-08 10:03:22 +07:00
Marten Seemann
ad5a3e2fa0
also use the multiplexer for the server
2018-08-08 10:03:22 +07:00
Marten Seemann
c8d20e86d7
move listening from the multiplexer to the packet handler map
2018-08-08 10:03:20 +07:00
Marten Seemann
7e2adfe19d
rename the clientMultiplexer to connMultiplexer
2018-08-08 09:49:49 +07:00
Marten Seemann
a654e7600a
move cutting of packets at the payload length to the multiplexer
2018-08-08 09:49:12 +07:00
Marten Seemann
90e8d6cbeb
Merge pull request #1467 from lucas-clemente/fix-1457
...
close connections created by DialAddr when the session is closed
2018-08-08 09:47:41 +07:00
Marten Seemann
cfa55f91bc
close connections created by DialAddr when the session is closed
2018-08-08 08:45:47 +07:00
Marten Seemann
61fb67096f
Merge pull request #1468 from lucas-clemente/fix-rtos
...
correctly set the largestSentBeforeRTO for spurious RTO detection
2018-08-08 08:44:11 +07:00
Marten Seemann
1bdc8cfe19
Merge pull request #1466 from lucas-clemente/fix-populating-client-config
...
fix populating the client config when dialing an address
2018-08-08 08:43:50 +07:00
Marten Seemann
2b1dce4b37
Merge pull request #1465 from lucas-clemente/fix-public-reset-logging
...
fix logging of the connection ID for PUBLIC_RESETs
2018-08-08 08:43:27 +07:00
Marten Seemann
a2733eac09
Merge pull request #1469 from lucas-clemente/log-keep-alives
...
log keep alive packets
2018-08-08 08:43:11 +07:00
Marten Seemann
1ecce9c288
log keep alive packets
2018-08-07 18:38:08 +07:00
Marten Seemann
d95dc29d90
only set the largestSentBeforeRTO when sending the first RTO
2018-08-07 12:34:45 +07:00
Marten Seemann
31f2ef7d32
add some useful logging for the sentPacketHandler OnAlarm function
2018-08-07 12:34:39 +07:00
Marten Seemann
e265abb8cb
fix populating the client config when dialing an address
2018-08-06 16:15:09 +07:00
Marten Seemann
1472d2a143
fix logging of the connection ID for PUBLIC_RESETs
2018-08-03 10:41:10 +07:00
Marten Seemann
e3959f4998
Merge pull request #1462 from lucas-clemente/vendor-everything
...
vendor aes12, quic-go-certificates and golang-lru
2018-07-31 13:26:02 +07:00
Marten Seemann
1730ad4a15
Merge pull request #1461 from lucas-clemente/fix-blocked-sending
...
only send BLOCKED frames if there is more data to send
2018-07-30 06:59:49 -04:00
Marten Seemann
7117a85cfa
vendor aes12, quic-go-certificates and golang-lru
2018-07-30 12:30:55 +07:00
Marten Seemann
50397a979c
only send BLOCKED frames if there is more data to send
2018-07-30 05:06:11 +07:00
Marten Seemann
fc87fbd354
Merge pull request #1456 from lucas-clemente/ack-ecn
...
implement parsing of ACK_ECN frames
2018-07-29 06:52:52 -04:00
Marten Seemann
3d087d522c
implement parsing of ACK_ECN frames
2018-07-29 17:35:31 +07:00
Marten Seemann
6f0a027f0f
Merge pull request #1442 from lucas-clemente/error-handling
...
split the session close method
2018-07-06 16:16:49 +07:00
Marten Seemann
469c4232b6
add a Changelog entry
2018-07-06 15:52:48 +07:00
Marten Seemann
6d3d6dc47d
pass an error code to Session.CloseWithError
2018-07-06 15:51:38 +07:00
Marten Seemann
8b2992a243
split the Session.Close(error) in Close() and CloseWithError(error)
2018-07-06 15:51:35 +07:00
Marten Seemann
2bc5b7f532
Merge pull request #1445 from lucas-clemente/fix-1444
...
fix race condition when adding packet handlers to the multiplexer
2018-07-06 15:29:34 +07:00