Commit Graph

29 Commits

Author SHA1 Message Date
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
Lucas Clemente
e09590a75c Fix stream framer race condition causing FC issues
Fixes #672.
2017-06-14 19:47:47 +02:00
Marten Seemann
987905149b run gofmt to fix ordering of imports 2017-06-13 18:07:22 +02:00
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