ekr / minq

A simple Go implementation of QUIC
MIT License
98 stars 16 forks source link

Bidirectional and unidirectional streams #52

Closed martinthomson closed 6 years ago

martinthomson commented 6 years ago

Just a heads-up that I'm working on this. I would appreciate some feedback on the interface changes if you have the time.

Right now, this is a huge pile of changes. I need to work out how to get you smaller increments. It turned out to be a fairly big lift to get this working.

I am reminded how the "compromise" of doing both bidirectional and unidirectional comes back to hurt really badly. The number of functions that do very similar things with different types in here is painful. I'm not go-proficient enough to find simple ways to refactor those yet, but the duplication grates a fair bit.

I haven't done tests for unidirectional streams just yet, so they are likely buggy as f**c. I also realize that I forgot to wire up the sending of MAX_STREAM_ID, so this will run out pretty hard.

ekr commented 6 years ago

I skimmed this at: https://phabricator.services.mozilla.com/D701

I made some suggestions for reducing the duplication. LMK what you think

ekr commented 6 years ago

Can you please take over the Phabricator revision and upload this there?