Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(netemx): HTTP3 server implementing NetStackServerFactory #1224

Merged
merged 5 commits into from
Sep 4, 2023

Conversation

bassosimone
Copy link
Contributor

@bassosimone bassosimone commented Sep 4, 2023

This diff continues improving and refactoring netemx with the objective of unifying how we create all kind of servers.

Here, specifically, we modify the HTTPS server implementing NetStackServerFactory implemented in the previous commit and obtain an HTTP3 server honouring NetStackServerFactory.

Crucially, this diff also adds support for overriding the TLS config passed to the server, which enables us to test for expired certificates, self-signed certificates, and so forth.

While working on this diff, I noticed a weird behavior with HTTP/3 tests using the same address, which is documented at ooni/probe#2527. I modified the tests to make them pass. To this end, I changed the IP addresses used by HTTP/3 tests to avoid reusing www.example.com's IP address. It seems fine, for now, to merge this code, because HTTP/3 is not a cornerstone of how we measure, for now. But we should investigate further in the future!

Checklist

  • I have read the contribution guidelines
  • reference issue for this pull request: engine: throttling-aware jafar replacement probe#1803
  • if you changed anything related to how experiments work and you need to reflect these changes in the ooni/spec repository, please link to the related ooni/spec pull request: N/A
  • if you changed code inside an experiment, make sure you bump its version number: N/A

This diff continues improving and refactoring netemx with the objective
of unifying how we create all kind of servers.

Here, specifically, we modify the HTTPS server implementing
NetStackServerFactory implemented in the previous commit and obtain an
HTTP3 server honouring NetStackServerFactory.

Crucially, this diff also adds support for overriding the TLS config
passed to the server, which enables us to test for expired certificates,
self-signed certificates, and so forth.
@bassosimone bassosimone merged commit 6b59b92 into master Sep 4, 2023
8 checks passed
@bassosimone bassosimone deleted the issue/1803 branch September 4, 2023 20:08
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this pull request Feb 13, 2024
)

This diff continues improving and refactoring netemx with the objective
of unifying how we create all kind of servers.

Here, specifically, we modify the HTTPS server implementing
NetStackServerFactory implemented in the previous commit and obtain an
HTTP3 server honouring NetStackServerFactory.

Crucially, this diff also adds support for overriding the TLS config
passed to the server, which enables us to test for expired certificates,
self-signed certificates, and so forth.

While working on this diff, I noticed a weird behavior with HTTP/3 tests
using the same address, which is documented at
ooni/probe#2527. I modified the tests to make
them pass. To this end, I changed the IP addresses used by HTTP/3 tests
to avoid reusing www.example.com's IP address. It seems fine, for now,
to merge this code, because HTTP/3 is not a cornerstone of how we
measure, for now. But we should investigate further in the future!

## Checklist

- [x] I have read the [contribution
guidelines](https://github.com/ooni/probe-cli/blob/master/CONTRIBUTING.md)
- [x] reference issue for this pull request:
ooni/probe#1803
- [x] if you changed anything related to how experiments work and you
need to reflect these changes in the ooni/spec repository, please link
to the related ooni/spec pull request: N/A
- [x] if you changed code inside an experiment, make sure you bump its
version number: N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant