-
Notifications
You must be signed in to change notification settings - Fork 220
add https proxy support #4253
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
add https proxy support #4253
Conversation
837996a
to
8fe0f8f
Compare
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, one question about feature management, but not a blocker.
Feel like this should release concurrently with the change from #4255 because that also feels like it might be an unexpected enough change to warrant a BehaviorVersion
(I know the behavior version can't actually get that change since it is just a compile time dependency feature, but still feels like it should be indicated somehow)
rustls-aws-lc = ["dep:rustls", "rustls?/aws_lc_rs", "dep:hyper-rustls", "default-client"] | ||
rustls-aws-lc-fips = ["dep:rustls", "rustls?/fips", "dep:hyper-rustls", "default-client"] | ||
s2n-tls = ["dep:s2n-tls", "dep:s2n-tls-hyper", "default-client"] | ||
rustls-ring = ["dep:rustls", "rustls?/ring", "dep:hyper-rustls", "dep:tokio-rustls", "default-client"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feels kind of weird adding tokio
dependencies behind a flag that isn't rt-tokio
. Would it make sense to introduce a rt-tokio
flag that adds these deps and have these features enable that feature?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it depends on whether the feature is bringing in the tokio runtime as a requirement vs using tokio IO traits. (for example hyper-rustls
also depends on tokio)
Feature flags and behavior versions are not the best match but ya we can discuss what makes sense. |
Good point. My gut is this PR can go independently of PR4255; if we just upgraded rustls to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome work. While dev guide could be useful, the API rustdoc seems good for now.
117a938
to
b0afb34
Compare
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
715640b
to
22c4386
Compare
A new generated diff is ready to view.
A new doc preview is ready to view. |
22c4386
to
7b929c2
Compare
A new generated diff is ready to view.
A new doc preview is ready to view. |
Motivation and Context
awslabs/aws-sdk-rust#169
Description
HTTP_PROXY
,HTTPS_PROXY
,ALL_PROXY
,NO_PROXY
and their lowercase versions) behind a newBehaviorVersion
wrap_connector
returns dedicated connector types forrustls
ands2n
and the addition of newconnect
modules containing the proxy tunnel logic for each TLS provider.aws-smithy-http-client
build_with_connector_fn
that allows creating aSharedHttpClient
by passing your own function for creating connectors. We didn't have a way to configureaws_smithy_http_client::Connector
and turn it into aSharedHttpClient
without going through http_client_fn. That works but it doesn't re-use the same caching logic for connectors as we do when going throughaws_smithy_http_client::Builder
. The alternative would be to make the client builder in aws-smithy-http-client behavior version aware. Doing it the way it is in the PR allows us to externalize this though and handle it inaws-smithy-runtime
when creating the default https clientTesting
mitmproxy
using different combinations of env variables and behavior versionsChecklist
.changelog
directory, specifying "client," "server," or both in theapplies_to
key..changelog
directory, specifying "aws-sdk-rust" in theapplies_to
key.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.