Marten Seemann
9a55fe234f
Merge pull request #648 from lucas-clemente/internalize-utils
...
make utils an internal package
2017-06-11 11:54:49 +02:00
Marten Seemann
c0b09c8646
make utils an internal package
2017-06-09 22:28:40 +02:00
Lucas Clemente
e43b91f633
Fix encryption of stream data
...
This commit splits up handling of the crypto stream and the other streams in the framer, crypto setup, and the packer.
- Crypto stream data is handled separately and should never be sent unencrypted or FW-secure. Fixes #544 .
- Non-crypto stream data is only sent with FW encryption on the server and only with non-FW or FW encryption on the client. Fixes #611 .
The crypto stream is current excluded from flow control (#657 ), but that shouldn't be an issue in practice for now.
2017-06-09 19:12:10 +02:00
Marten Seemann
a8f45d7959
don't send BlockedFrames after sending the FinBit for a stream
...
fixes #333
2016-10-27 17:56:02 +07:00
Lucas Clemente
638f6ae5e5
remove unnecessary flow control manager call
2016-09-17 13:40:51 +02:00
Lucas Clemente
e8ef0de5b4
exit framer loop early if no space is left in packet
2016-09-17 13:40:51 +02:00
Lucas Clemente
d837cd96b2
disable FIN-packing optimization, increasing transfer rate by 5%
2016-09-05 00:51:05 +02:00
Lucas Clemente
781fce5bd7
remove outdated comments
2016-08-18 10:31:41 +02:00
Marten Seemann
1d7cf74e48
always send a StopWaiting with a packet containing a retransmission
...
fixes #259
2016-08-18 15:02:18 +07:00
Lucas Clemente
73c8967302
bundle FINs into stream frames (sometimes)
...
fixes #279
2016-08-17 23:12:37 +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
71dcad29b5
use round-robin scheduling in StreamFramer
...
fixes #207
2016-08-06 17:01:28 +07:00
Marten Seemann
a796877b94
use StreamsMap in Session and StreamFramer
...
fixes #208
2016-08-05 19:30:28 +07:00
Lucas Clemente
5f774c8e03
change fcm.SendWindowSize to include conn window to simplify framer
2016-07-26 17:06:54 +02:00
Lucas Clemente
804287bd5c
remove streamFramer.EstimatedDataLen
...
ref #217
2016-07-26 13:44:09 +02:00
Lucas Clemente
d9a3980efc
remove streamFramer.HasData()
...
ref #217
2016-07-26 13:43:18 +02:00
Lucas Clemente
7adf760fa4
change streamFramer to pop as many stream frames as possible at once
...
ref #217
2016-07-26 13:42:30 +02:00
Lucas Clemente
38098954f4
reduce calls to framer.getFCAllowance
2016-07-12 15:01:14 +02:00
Lucas Clemente
bdbf8d3ebe
add BLOCKED frame management to streamFramer
...
ref #211
2016-07-09 14:29:56 +02:00
Lucas Clemente
f43c4c7f1a
respect flow control in streamFramer estimated length and HasData()
...
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
3cbf16b66f
add flow control to streamFramer
...
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
81ae6d44ec
introduce protocol.VersionWhatever for when the version doesn't matter
...
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