Marten Seemann
e926b0805a
split the stream into a receive and a send stream
2017-12-20 10:05:02 +07:00
Marten Seemann
c0eb12bb29
Merge pull request #1036 from lucas-clemente/fix-1034
...
send and handle STOP_SENDING frames
2017-12-16 10:26:07 +07:00
Marten Seemann
a0c4e28485
send and handle STOP_SENDING frames (for IETF QUIC)
2017-12-16 09:30:07 +07:00
Marten Seemann
8d77fceb3a
Merge pull request #1035 from lucas-clemente/stream-resets
...
refactor stream to support canceling Read and Write
2017-12-16 09:27:46 +07:00
Marten Seemann
d0b22e3439
refactor stream to support canceling Read and Write
2017-12-16 09:10:24 +07:00
Marten Seemann
15af2c6e41
Merge pull request #1037 from lucas-clemente/flow-control-mutexes
...
remove flow control mutexes for the sending data
2017-12-16 08:57:59 +07:00
Marten Seemann
4b7af49164
Merge pull request #1038 from lucas-clemente/flow-control-no-defer
...
don't defer unlocking the mutex when getting window updates
2017-12-16 00:25:26 +07:00
Marten Seemann
bfdeeae70c
remove flow control mutexes for the sending data
...
Receiving MAX_{STREAM}_DATA frames and sending data is all done
sequentially, so we don't need a mutex there.
2017-12-16 00:23:48 +07:00
Marten Seemann
075e6f2c79
Merge pull request #1033 from lucas-clemente/error-code-type
...
add an application-defined error type, for RST_STREAM and STOP_SENDING
2017-12-15 19:53:54 +07:00
Marten Seemann
357a2f6213
don't defer unlocking the mutex when getting window updates
2017-12-15 19:49:41 +07:00
Marten Seemann
40650d93f0
add an application-defined error type, for RST_STREAM and STOP_SENDING
2017-12-15 16:21:09 +07:00
Marten Seemann
efa781b067
Merge pull request #1027 from lucas-clemente/fix-1026
...
don't send STOP_WAITING frames (for IETF QUIC)
2017-12-14 23:40:03 +07:00
Marten Seemann
2c83c9e3f0
don't send STOP_WAITING frames (for IETF QUIC)
2017-12-14 23:14:05 +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
bb093d82f1
Merge pull request #1025 from lucas-clemente/fix-964
...
ignore STOP_WAITINGs, derive lower bound for packets to include in ACK
2017-12-14 19:38:28 +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
8e0060c51b
ignore STOP_WAITINGs, derive lower bound for packets to include in ACK
2017-12-14 19:23:06 +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
69998c19cb
add the offset field to the BLOCKED and STREAM_BLOCKED frames
...
The value is not yet set, but parsing and writing works.
2017-12-14 19:00:06 +07:00
Marten Seemann
acdfd28452
Merge pull request #1023 from lucas-clemente/stream-closeabruptly
...
rename stream.Cancel to stream.CloseForShutdown
2017-12-14 17:45:06 +07:00
Marten Seemann
8c5741ae79
rename stream.Cancel to stream.CloseForShutdown
2017-12-14 17:30:44 +07:00
Marten Seemann
d28f09837e
Merge pull request #1015 from lucas-clemente/rename-stream-methods
...
pass RST_STREAM and MAX_STREAM_DATA directly to the stream
2017-12-14 17:20:51 +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
8833e4f4af
use a gomock ReceivedPacketHandler in the session tests
2017-12-14 12:28:40 +07:00
Marten Seemann
5c7fb54445
use a gomock SentPacketHandler in the session tests
2017-12-14 12:28:40 +07:00
Marten Seemann
975e45d2e1
Merge pull request #1022 from lucas-clemente/queue-rststreamframe-directly
...
directly queue RST_STREAM frames on stream.Reset
2017-12-14 08:55:45 +07:00
Marten Seemann
c78cc973bd
Merge pull request #1021 from lucas-clemente/fix-1020
...
fix race condition when queueing RST_STREAM frames
2017-12-14 08:54:51 +07:00
Marten Seemann
98325959c6
Merge pull request #1024 from lucas-clemente/stop-sending-frame
...
implement parsing and writing of the STOP_SENDING frame
2017-12-14 08:36:57 +07:00
Marten Seemann
a6e44f3bfc
implement parsing and writing of the STOP_SENDING frame
2017-12-13 17:58:50 +07:00
Marten Seemann
bd77f3081c
directly queue RST_STREAM frames on stream.Reset
2017-12-13 17:40:46 +07:00
Marten Seemann
c1559be957
fix race condition when queueing RST_STREAM frames
2017-12-13 17:35:34 +07:00
Marten Seemann
3679c56f7e
Merge pull request #969 from lucas-clemente/bundle-retransmittable-packet
...
bundle PING frame with other frames
2017-12-12 23:29:26 +07:00
Marten Seemann
a25249547f
Merge pull request #1019 from lucas-clemente/fix-concurrent-streams-test
...
fix concurrent streams integration test
2017-12-12 23:11:50 +07:00
Marten Seemann
8e1f62f749
when forcing a retransmittable packet, bundle the PING with other frames
...
We're sending a retransmittable packet every 20 packets (if there are no
other frames to send). To make a packet retransmittable, we add a PING
frame. We should bundle this PING with an ACK.
2017-12-12 23:10:43 +07:00
Marten Seemann
84ea38c243
fix concurrent streams integration test
...
This test actually never worked. stream.Write blocks until the data has
been sent out, so we never opened the maximum number of concurrent
streams.
2017-12-12 22:58:23 +07:00
Marten Seemann
3cf3df9c9a
Merge pull request #1013 from lucas-clemente/stream-pop-streamframes
...
simplify the stream by directly popping STREAM frames from it
2017-12-12 19:05:47 +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
b75e1df4f0
Merge pull request #1011 from lucas-clemente/crypto-stream-is-special
...
remove unneeded function from the crypto stream interface
2017-12-12 18:40:12 +07:00
Marten Seemann
7fd0157e1f
Merge pull request #1006 from lucas-clemente/more-window-updates
...
decrease the threshold to send MAX_{STREAM}_DATA frames
2017-12-12 18:30:55 +07:00
Marten Seemann
cd5e7ae177
remove unneeded function from the crypto stream interface
2017-12-12 18:30:08 +07:00
Marten Seemann
3d47284e1c
Merge pull request #1007 from lucas-clemente/min-streamframe-size
...
don't add more STREAM frames to a packet if remaining size is too small
2017-12-12 18:22:23 +07:00
Marten Seemann
16d610417b
don't send every MAX_{STREAM}_DATA twice
2017-12-12 18:06:55 +07:00
Marten Seemann
eb3e253be2
send MAX_{STREAM}_DATA frames more frequently
...
WINDOW_UPDATEs are relatively small, and it doesn't cost much to grant
the peer more flow control credit earlier.
2017-12-12 18:06:49 +07:00
Marten Seemann
4aca4d64b7
don't add more STREAM frames to a packet if remaining size is too small
2017-12-12 18:00:05 +07:00
Marten Seemann
9b4cdf66fc
Merge pull request #1009 from lucas-clemente/fix-1008
...
correctly handle frames for the crypto stream
2017-12-12 17:56:49 +07:00
Marten Seemann
bf53bf8815
Merge pull request #1016 from lucas-clemente/remove-frame-minlength-error
...
remove the error return value from wire.Frame.MinLength
2017-12-12 17:50:45 +07:00
Marten Seemann
dfa2181657
reject RST_STREAM frames for the crypto stream
2017-12-12 17:37:15 +07:00