Skip to content

Conversation

@graebm
Copy link
Contributor

@graebm graebm commented Mar 10, 2020

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@graebm graebm requested review from a team and JonathanHenson March 10, 2020 01:23
@graebm graebm merged commit 8c7721a into master Mar 10, 2020
@graebm graebm deleted the ptr-cmp-fix branch March 10, 2020 01:28
graebm added a commit that referenced this pull request Mar 17, 2020
TingDaoK added a commit that referenced this pull request Mar 24, 2020
* revamp encoder API (wip)

* hpack pre-encode cmd.
Do encoding in 2 passes, so we know exactly how much buffer space we'll need. I will probably revert this. I thought this was clever, but seeing it implemented it's just so much more complicated than writing everything to a dynamic buffer, then copying it into the aws_io_mesage.

* simplify decoder state machine loop

* hpack encoding expands output buffer
ditch 2 pass approach, it was just too complicated

* Revamp HEADERS/PUSH_PROMISE/DATA frames

* all tests passing again

* Exposed options for toggling read back pressure behavior, updated to match aws-c-io api changes. (#194)

* Fix bug when new request has same memory address as old request. (#195)

As seen in real life

* Enabled compilation on VS 2015 (#196)

* Enabled compilation on VS 2015

* Fix VS narrowing warning

* Updated to v0.5.3 of builder

* Fix proxies connect and tests (#198)

Ignore connection: close on 200/OK responses to a CONNECT Request, since the proxy is obviously drunk and needs to hail an uber to get home from the bar safely.

Fix the broken tests from the tcp back pressure refactor in aws-c-io.

* Fix fuzz tests

* clang-format

* tweaks

* tweaks

* Simplify how most frames are encoded:
- Use common struct
- Pre-encode the entire frame
- Incrementally copy that to aws_io_message whenever encode() is called.

This is simpler/better because:
1) more shared code
2) unique payload-writing code all goes in the one new() function, instead of being spread across the new() and encode() functions
3) less chance of incorrect size calculations, since we're encoding to a buffer of the exact correct length

* THANK YOU MSVC COMPILER WARNING YOU SAVED MY ASS

* replaced lots of AWS_ERROR_SHORT_BUFFER error-handling with asserts. If this kind of error happens now, it's programmer error

* compiler warning

* insert ping ACK to the front of the queue

* auto send ping ack frame back

* h2_test_helper.h
Extract useful machinery from test_h2_decoder.c for use with other tests.

* merge with master

* test_h2_client.c is using fake peer

* test_for_ping_ack

* more h2_fake_peer functionality

* msvc warning

* delete the message

* prototype function

* tiny changes for making the code clear

* clang format

* Stop just the reading direction.

* error check&udpate read window

* move comments

* remove redundant connection id and style change

* LOGF->LOG

Co-authored-by: Michael Graeb <graebm@amazon.com>
Co-authored-by: Jonathan M. Henson <henso@amazon.com>
Co-authored-by: Justin Boswell <boswej@amazon.com>
Co-authored-by: Dengke Tang <dengket@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants