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
Marten Seemann
698c8ceee8
reject STOP_WAITING frames that have a least unacked of 0
2017-08-10 09:33:14 +07:00
Marten Seemann
f535cc40de
use io.ReadFull instead of Read to read into known length slices
2017-08-04 19:36:24 +07:00
Marten Seemann
987905149b
run gofmt to fix ordering of imports
2017-06-13 18:07:22 +02:00
Marten Seemann
c0b09c8646
make utils an internal package
2017-06-09 22:28:40 +02:00
Marten Seemann
0dbbb8d1b3
use the standard library log package for logging
2017-05-25 20:31:45 +08:00
Marten Seemann
7e256e0ebe
log timestamps
2017-05-16 12:19:36 +08:00
Marten Seemann
a06abf91f5
fix parsing of STREAM frames that have the FinBit set
...
fixes #542
2017-04-16 14:52:34 +07:00
Lucas Clemente
013d7fdb30
Simplify code in a few places
...
Found by running `gosimple ./...`
2017-04-13 16:43:58 +02:00
Marten Seemann
745d7b7e9f
reject stream frames that overflow the offset
...
fixes #452
2017-02-27 15:45:32 +07:00
Marten Seemann
fd5d5d35dd
add tests for frame logging
2017-01-04 14:47:01 +07:00
Marten Seemann
bc2a610912
improve logging of AckFrames
2017-01-04 13:00:59 +07:00
Marten Seemann
c6ea0e0b7a
use VersionWhatever in AckFrame tests
2016-12-02 22:37:31 +07:00
Marten Seemann
295f6c78d9
correctly parse ACK frames with LargestAcked 0
...
fixes #362
2016-12-02 22:32:10 +07:00
Marten Seemann
bbbc24c431
improve logging of StopWaitingFrames
2016-11-28 11:27:54 +07:00
Lucas Clemente
aa645301c6
improve alignment of some structs
2016-09-07 15:45:33 +02:00
Lucas Clemente
313dd5b2fa
improve reading of stream frames, increasing transfer speed by ~10%
2016-09-05 00:36:33 +02:00
Marten Seemann
05265bd3c5
fix AckFrame writing with gap lengths which are a multiple of 255
...
fixes #306
2016-09-02 12:16:01 +07:00
Lucas Clemente
b138486cd8
remove NackRange
2016-09-01 20:26:31 +02:00
Lucas Clemente
3c2148981f
remove entropy from StopWaitingFrame
2016-09-01 20:26:31 +02:00
Lucas Clemente
b032a07f70
remove ackhandlerlegacy and frames.AckFrameLegacy
2016-09-01 20:26:31 +02:00
Marten Seemann
a8764d923e
remove version 32 from tests
...
ref #215
2016-09-01 12:20:18 +02:00
Lucas Clemente
126db938d0
fix some linter warnings
2016-08-23 12:24:33 +02:00
Marten Seemann
f1da2239ca
don't split off empty StreamFrames in streamFramer
...
fixes #284
2016-08-17 18:04:33 +07:00
Marten Seemann
8a7ab6d6cd
add a function to check if an ACK frame acks a certain packet number
2016-08-11 11:03:45 +02:00
Lucas Clemente
49a0a7d60c
improve stream_frame tests
2016-08-08 11:07:36 +02:00
Lucas Clemente
c8bb818e4d
fix some typos
2016-08-06 14:46:09 +02:00
Lucas Clemente
8664ee44b8
run gofmt -s on ack_frame_test.go
2016-08-06 14:45:11 +02:00
Marten Seemann
336fe548d7
improve logging of legacy ACK frames
2016-08-03 11:49:19 +07:00
Lucas Clemente
b9abc5b2a1
improve frames coverage and fix a small stream frame parsing bug
...
ref #241
2016-08-02 13:11:30 +02:00
Lucas Clemente
c46e93c752
drop support for v31
...
fixes #214
2016-07-29 15:22:56 +02:00
Marten Seemann
516500e156
wrap legacy AckFrame in new AckFrame
2016-07-26 12:05:31 +07:00
Marten Seemann
fb172297eb
rename AckFrameNew to AckFrame
2016-07-26 10:42:25 +07:00
Marten Seemann
03e25d1e85
send shorter Missing Packet Sequence Number Delta in new ACK frames
...
fixes #184
2016-07-25 17:43:31 +07:00
Marten Seemann
c44e01a8e6
correctly write new ACK frames with more than 255 ACK ranges
...
fixes #193
2016-07-20 14:12:36 +08:00
Lucas Clemente
546ba27013
add an error when attempting to write empty stream frames
2016-07-13 16:12:14 +02:00
Lucas Clemente
37f2066933
remove caching of streamID lengths in StreamFrame
...
fixes the final failing test of #83
2016-07-08 18:21:46 +02:00
Lucas Clemente
d1e3b541d3
replace streamFrameQueue with just-in-time framing of written data
...
This commits replaces the stream frame queue with a framer which
requests data from the streams just when a frame is needed by the
packet packer. This simplifies a lot of things and allows some other
refactorings, see issue #83 .
There are a few pending tests which will be fixed soon.
2016-07-08 18:21:44 +02:00
Marten Seemann
1fc83757a0
fix panic in QUIC 34 ACK frame parser for incorrect typeBytes
...
fixes #198
2016-07-05 15:10:22 +08:00
Marten Seemann
da2b2f3a2d
parse QUIC 34 ACK Frames with an incomplete range
...
fixes #194
2016-07-03 23:59:11 +08:00
Marten Seemann
1186af3f99
reject QUIC 34 ACK frames that have an empty first ACK range
2016-06-28 22:14:43 +07:00
Marten Seemann
5e8c6e59f6
remove NackRanges from new AckFrame
2016-06-27 11:22:35 +07:00
Marten Seemann
d86d981319
rename LargestObserved to LargestAcked in QUIC 34 ACK frame
2016-06-24 14:30:39 +07:00
Marten Seemann
e6ecb1f40c
remove unused GetHighestInOrderPacketNumber method from QUIC 34 ACK frame
...
ref #182
2016-06-22 16:32:56 +07:00
Marten Seemann
1d412f2af6
check for consistent ACK ranges when writing QUIC 34 ACK frames
...
ref #182
2016-06-22 15:35:14 +07:00
Marten Seemann
9d3dd34017
correctly parse and write QUIC 34 ACK frames if packet 1 was lost
...
ref #182
2016-06-22 15:16:53 +07:00
Marten Seemann
288cb9e143
rename AckFrame to AckFrameLegacy
2016-06-21 19:51:26 +07:00
Marten Seemann
c01e16da71
validate parsed ACK ranges from a QUIC 34 ACK frame
...
ref #182
2016-06-21 19:49:24 +07:00
Marten Seemann
a92bd2bf55
don't write any timestamps in QUIC 34 ACK frames
...
ref #182
2016-06-21 18:14:30 +07:00