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
95a971f322
make the flow control package internal
2017-08-30 00:27:44 +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
6546e13e26
implement net.Error interface for stream deadline expiration errors
2017-07-24 21:45:07 +07:00
Marten Seemann
e09993403d
add stream deadlines to the Stream interface
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
a70ae86f5a
replace the sync.Cond for stream.Write() by a channel
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
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
Lucas Clemente
1311629830
Remove unnecessary error return value in newStream
2017-06-08 11:09:11 +02:00
Lucas Clemente
a7c60e3229
Fix a data race in stream.Read
2017-04-30 15:30:31 +02: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
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
Marten Seemann
c705a19f11
fix race condition in stream
2017-01-09 09:49:44 +07:00
Marten Seemann
57e6749955
stream code cleanup
2017-01-09 09:49:44 +07:00
Marten Seemann
a86f31d789
implement a stream.Reset() method
...
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
4e0ef58bab
allow stream.Read for streams that a RST was received for
...
and a lot of code improvements
fixes #385
2017-01-09 09:49:43 +07:00
Marten Seemann
9e09198df6
don’t return data for writing from a stream if it was closed with an error
2017-01-03 16:07:18 +07:00
Marten Seemann
74edf9caad
improve errors returned for flow control violations
2017-01-03 12:01:27 +07:00
Lucas Clemente
53ae201fd2
remove stream.ReadByte
2016-09-05 23:22:49 +02:00
Lucas Clemente
d93de7cfd0
do some consistency checks before accessing slices in stream
...
This is a workaround for the security part of #293 .
2016-08-17 11:39:57 +02:00
Lucas Clemente
17add945e5
fix a stream race condition
2016-08-17 11:14:41 +02:00
Marten Seemann
f0f500a218
correctly treat nils and empty slices in stream.Write
2016-08-16 19:49:36 +07:00
Marten Seemann
50d6ae205d
change order of parameters in Stream constructor
2016-08-07 13:12:10 +07:00
Marten Seemann
143c3ea16b
remove unused connectionParametersManager from Stream
2016-08-07 13:09:44 +07:00
Lucas Clemente
62b06a003c
fix a race condition in stream.Write
2016-08-05 11:33:19 +02:00
Lucas Clemente
0e05534909
improve main package test coverage
...
ref #241
2016-08-02 11:49:25 +02:00
Lucas Clemente
5a00fd89f6
simplify stream now that the frame sorter handles gaps properly
2016-08-02 11:34:12 +02:00
Lucas Clemente
3d0ed0d1f9
trigger sending when stream data is read
...
fixes #223
2016-07-28 16:52:04 +02:00
Lucas Clemente
b6758e67e0
minor stream optimization
2016-07-26 17:12:42 +02:00
Lucas Clemente
ebf41d9f26
minor stream optimizations
2016-07-26 16:30:33 +02:00
Lucas Clemente
73db4d7a04
remove stream.contributesToConnectionFlowControl
2016-07-11 17:54:22 +02:00
Lucas Clemente
1bc8c882c9
remove session pointer from stream and use a lambda to signal new data
2016-07-11 14:57:54 +02:00
Lucas Clemente
f04d14ac3e
use flow controller for window update handling, remove windowUpdateMgr
2016-07-11 14:54:32 +02:00
Lucas Clemente
bb8464efe0
copy the slice passed to stream.Write
2016-07-08 18:21:45 +02:00
Lucas Clemente
f8130288a3
fix early garbage collection of streams
...
ref #83
2016-07-08 18:21:45 +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
5d02033f0f
use FlowControlManager in Stream for Reading data
2016-06-15 19:39:50 +07:00