-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: experimental patch that enforces IPv4 (#16)
* Experimental build that removes IPV6 support. This moves the core HTTP client into an external crate and implements a custom resolver to attempt to limit connections to IPV4 only. The reasoning for the external crate: it simplifies debugging this and enables swapping out the underlying HTTP client adapter for any further debugging. I wouldn't necessarily consider this design complete and/or necessary, but this bug is tricky to reproduce and I'm not jumping over a bunch of files hunting down imports. The reasoning for the bug: GCP appears to have some oddities with regards to IPV6 support, and if a device is configured to be IPV6-capable and a user does not have a DNS cache entry for the API, they may run into a randomly broken connection. I believe we never saw this with the curl connections that were in use on the C++ side as that implements a happy-eyeballs flow that attempts to find the "best" route and follow it accordingly. This patch just attempts to restrict things to ipv4 which we know works. This patch is subject to further iterations as it may require vending a few debug builds to users to see if it works out.
- Loading branch information
1 parent
6d8737c
commit 1e9fbf1
Showing
14 changed files
with
187 additions
and
68 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.