Commit graph

126 commits

Author SHA1 Message Date
Marten Seemann
a5d3eaea61 rename the scheduleSending callback to onHasStreamData in the stream
This callback also takes the stream ID, which will later be used to
create a queue of streams that have data for writing available.
2018-01-02 23:24:44 +07:00
Marten Seemann
fc8fafd15e pass a callback containing the callbacks to the stream 2017-12-20 11:49:05 +07:00
Marten Seemann
d2e31c04ab generate the streamI mock in the quic package
By doing so, we can mock private methods of the stream, so they cannot
be type-asserted by users of quic-go.
2017-12-20 10:42:07 +07:00
Marten Seemann
092908d3e0 simplify sending of (connection-level) BLOCKED frames 2017-12-20 10:23:17 +07:00
Marten Seemann
d49ad2d0cc queue STREAM_BLOCKED frames from the stream, when popping a STREAM frame 2017-12-20 10:23:01 +07:00
Marten Seemann
e926b0805a split the stream into a receive and a send stream 2017-12-20 10:05:02 +07:00
Marten Seemann
a0c4e28485 send and handle STOP_SENDING frames (for IETF QUIC) 2017-12-16 09:30:07 +07:00
Marten Seemann
d0b22e3439 refactor stream to support canceling Read and Write 2017-12-16 09:10:24 +07:00
Marten Seemann
93e99e239c
Merge pull request #1030 from lucas-clemente/fix-1029
when the stream write deadline expires, return the data length written
2017-12-14 23:13:44 +07:00
Marten Seemann
34ad9f9e63 when the stream write deadline expires, return the data length written 2017-12-14 19:25:36 +07:00
Marten Seemann
448928fc63
Merge pull request #1028 from lucas-clemente/fix-986
add the offset to the BLOCKED and STREAM_BLOCKED frames
2017-12-14 19:21:05 +07:00
Marten Seemann
00edfb7461 set the offset in BLOCKED and STREAM_BLOCKED frames 2017-12-14 19:04:17 +07:00
Marten Seemann
8c5741ae79 rename stream.Cancel to stream.CloseForShutdown 2017-12-14 17:30:44 +07:00
Marten Seemann
03977c1a25 pass RST_STREAM frames directly to the stream 2017-12-14 17:00:41 +07:00
Marten Seemann
2d31440510 pass MAX_STREAM_DATA frames directly to the stream 2017-12-14 16:50:47 +07:00
Marten Seemann
823098d6e2 rename stream.AddStreamFrame to stream.HandleStreamFrame 2017-12-14 16:50:47 +07:00
Marten Seemann
bd77f3081c directly queue RST_STREAM frames on stream.Reset 2017-12-13 17:40:46 +07:00
Marten Seemann
73ab97aa95 simplify the stream by directly popping STREAM frames from it 2017-12-12 18:48:08 +07:00
Marten Seemann
cd5e7ae177 remove unneeded function from the crypto stream interface 2017-12-12 18:30:08 +07:00
Marten Seemann
8e8892b064 remove the SentFin method from the stream
When a FIN is dequeued from the stream by the streamFramer, it is
guaranteed to be sent out. There's no need to explicitely signal that to
the stream.
2017-12-08 14:05:16 +07:00
Marten Seemann
71af5758e2 remove the ShouldSendFin method from the stream
GetDataForWriting now has two return parameters: the data and if a FIN
should be sent.
2017-12-08 14:05:14 +07:00
Marten Seemann
085624be20 replace stream.LenOfDataForWriting by HasDataForWriting
The return value (the length of data for writing) was only used to
determine if the stream has data for writing. Therefore it's easier to
just return a bool.

No functional change expected.
2017-12-08 14:04:00 +07:00
Marten Seemann
25a6dc9654 implement stateless handling of Initial packets for the TLS server 2017-12-08 08:45:54 +07:00
Marten Seemann
f662822486 use stream 0 for the crypto stream when using TLS 2017-11-04 15:22:07 +07:00
Marten Seemann
268c3859fc remove the flow control manager 2017-10-20 21:34:09 +07:00
Marten Seemann
f3e9bf4332 remove the params negotiator 2017-10-20 18:08:21 +07:00
Marten Seemann
f1ada87dcf make the protocol package internal 2017-08-30 00:19:44 +07:00
Marten Seemann
ed522ebbce make wire an internal package 2017-08-29 23:51:56 +07:00
Marten Seemann
88afad8722 rename package frames to wire 2017-08-29 23:27:15 +07:00
Marten Seemann
8ef69143ba implement a context for the stream
The context is cancelled when the write-side of the stream is closed.
2017-08-02 11:28:17 +07:00
Marten Seemann
77d4573d9b return an error when Write is called on a closed stream 2017-07-29 00:19:39 +07:00
Marten Seemann
315aa14ab5 use the new gbytes.TimeoutReader and TimeoutWriter in the stream tests
This makes sure that our tests fail, even if stream.Read or stream.Write
block.
2017-07-26 16:15:48 +07:00
Marten Seemann
6546e13e26 implement net.Error interface for stream deadline expiration errors 2017-07-24 21:45:07 +07:00
Marten Seemann
56155986e9 read the CI timescale factor from an environment variable 2017-07-15 23:51:24 +07:00
Marten Seemann
cfc7d1604d scale all deadline duration in stream tests on the CIs by 20
This allows us to run the tests faster locally. On the CIs, where the
timing is less accurate, the tests take longer, but won't be flaky.
2017-07-15 23:46:15 +07:00
Marten Seemann
1acdc5f18e implement write deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
5720e8af7d implement read deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
5fbd52158f replace the sync.Cond for stream.Read() by a channel 2017-07-15 23:46:15 +07:00
Marten Seemann
c63be8c544
return the length of data written when the stream errors 2017-06-14 12:08:26 +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
eeb2d8d821 Mock FlowControlManager using gomock 2017-06-08 16:06:31 +02:00
Lucas Clemente
1311629830 Remove unnecessary error return value in newStream 2017-06-08 11:09:11 +02:00
Marten Seemann
2a1b3da971
fix flaky stream tests
fixes #549
2017-04-18 10:15:54 +07:00
Marten Seemann
e674016312
accept overlapping stream data 2017-02-28 18:34:15 +07:00
Marten Seemann
71227437ee
only retransmit WindowUpdates if no higher WindowUpdate has been sent
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
980d0e398f
don’t add bytes read after receiving a RST_STREAM to flow controller 2017-01-09 10:15:12 +07:00
Marten Seemann
d246a295d2
add more stream tests for reading after receiving a RST_STREAM 2017-01-09 09:51:21 +07:00
Marten Seemann
d6a0a145a4
correclty detected the closed state of a stream
fixes #380
2017-01-09 09:49:45 +07:00
Marten Seemann
7a91794292
send RST_STREAM frames
ref #380
2017-01-09 09:49:44 +07:00