This will alow reuse of many functions.
It will also inable use of queues that are going to be useful when polling is implemented.
Differential Revision: https://phabricator.services.mozilla.com/D157817
This will alow reuse of many functions.
It will also inable use of queues that are going to be useful when polling is implemented.
Differential Revision: https://phabricator.services.mozilla.com/D157817
This will alow reuse of many functions.
It will also inable use of queues that are going to be useful when polling is implemented.
Differential Revision: https://phabricator.services.mozilla.com/D157817
This will alow reuse of many functions.
It will also inable use of queues that are going to be useful when polling is implemented.
Differential Revision: https://phabricator.services.mozilla.com/D157817
This will alow reuse of many functions.
It will also inable use of queues that are going to be useful when polling is implemented.
Differential Revision: https://phabricator.services.mozilla.com/D157817
Change spelling in both network.http.http3.priorization and
network.http.http3.send_background_tabs_deprioritization config option
Differential Revision: https://phabricator.services.mozilla.com/D135689
The Http3Stream’s received side has one state, i.e. READING_INTERIM_HEADERS. The stream transitions into this state when 1xx response is received and it transitions back to BEFORE_HEADERS as new headers are expected. As with the final headers the 1xx headers are stored into mFlatResponseHeaders and they are picked up by the HttpTransaction from there.
neqo makes sure that response headers and data are received in the right order, e.g. 1xx cannot be received after a non-1xx response, fin cannot follow 1xx response, etc.
Differential Revision: https://phabricator.services.mozilla.com/D132831
CLOSED TREE
Backed out changeset 511af4b42efc (bug 1734132)
Backed out changeset 9516eb1214d8 (bug 1734132)
Backed out changeset 513d740d6477 (bug 1734132)
This changeset is the result of adding modernize-use-default-member-init to
tools/clang-tidy/config.yaml then proceeding to run
`./mach static-analysis check netwerk/ --fix`
I then went through the resulting fix and manually updated all of the member
variables which were missed due to them having a non-trivial constructor.
Note that the tool was only run on Linux, so code that only runs on some
platforms may have been missed.
The member variables that are still initialized in the contructor definition
are:
- bitfields (not all currently supported compilers allow default-member-init
- variables that are initialized via a parameter
- variables that use code not visible in the header file
There are a few advantages to landing this change:
- fewer lines of code - now declaration is in the same place as initialization
this also makes it easier to see when looking at the header.
- it makes it harder to miss initializing a member when adding a new contructor
- variables that depend on an include guard look much nicer now
Additionally I removed some unnecessary reinitialization of NetAddr members
(it has a constructor that does that now), and changed nsWifiScannerDBus to
use the thread-safe strtok_r instead of strtok.
Differential Revision: https://phabricator.services.mozilla.com/D116980
- Move looping while calling mTransaction->ReadSegments into Http3Stream and call mTransaction->ReadSegmentsAgain. We use to loop in Http3Session which was not easy because it is not easy to find out when to leave the loop. The original code was working, but this is a better way to do this.
- Remove mReadyForWriteButBlocked it is not necessary, it was used only as a double check and can only be a source of bugs.
- Remove mContentBytesWritten, because it is not used.
- Http3Server now reads post data and returns amount of data received (this was needed to make better test).
- In test_http3.js increase the number of parallel to trigger max-concurent-stream limit and test stream queuing before streams being activated.
- Add tests for post with large amount of data that are hitting the stream bugger limits. This is testing Http3Event::Tag::DataWritable and also testing the the end of the mTransaction->ReadSegmentsAgain loop.
Differential Revision: https://phabricator.services.mozilla.com/D95622
- We have an assumption that SetResponseHeaders will be called before WriteSegments is called for the first time. I would like to make it more structural add add a new state BEFORE_HEADERS
- mDataReceived was never set, which is wrong.
- Almost any error that occurs during ReadResponseData is a connection error and neqo will handle it internally by closing the session. This will be read by necko as ConnectionState change event. Therefore ignore errors received from mHttp3Connection->ReadResponseData and let the ConnectionChange event close the stream.
- This also adds a test. Because the stream has received some data already the transaction will br closed with the NS_ERROR_NET_PARTIAL_TRANSFER error.
Differential Revision: https://phabricator.services.mozilla.com/D94951
- This will make handling of responses contain only headers in the same way as the responses with
a response body
- This will also make sure we pick up an error if neqo_http3conn_read_response_data return one.
Differential Revision: https://phabricator.services.mozilla.com/D94834
The problem occurs when a response does not have a body. In this case the transaction will never be closed. if a transaction only has read headers, WriteSegments will return 0 bytes written(bug 1646701) and WriteSegments will not be called again and the transaction will not pickup the FIN bit.
Some code improvements:
- calling WriteSegments in a loop has been moved to Http3Stream. This is more appropriate place
- remove RECEIVED_RESET, because it is not used
- add test and add head_http3.js for setting up http3 tests (e.g. making sure that an alt-svc mapping is setup)
- fix handling of a response that has more data than its content-length header indicates.
Differential Revision: https://phabricator.services.mozilla.com/D92990