diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-03-24 11:36:15 +0100 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-03-24 12:07:13 +0100 |
commit | c0bbca8c44784509c728d15bcf7632bfa6779b2d (patch) | |
tree | 7a9ae6c0e594152f5242c367c7414de8695feb17 | |
parent | 80123ca505081fca513fc0865cf6e2daf43ff854 (diff) | |
download | podman-c0bbca8c44784509c728d15bcf7632bfa6779b2d.tar.gz podman-c0bbca8c44784509c728d15bcf7632bfa6779b2d.tar.bz2 podman-c0bbca8c44784509c728d15bcf7632bfa6779b2d.zip |
podman machine: fix port forwarding with proxy
When a user has a http proxy configured the VM will use it. However
since gvproxy can only be reached internally from within the VM the port
forwarding HTTP API call should not be redirected to the proxy.
[NO NEW TESTS NEEDED]
Fixes #13628
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
-rw-r--r-- | libpod/networking_machine.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libpod/networking_machine.go b/libpod/networking_machine.go index ca759b893..d2a6b7cfa 100644 --- a/libpod/networking_machine.go +++ b/libpod/networking_machine.go @@ -11,6 +11,7 @@ import ( "net/http" "strconv" "strings" + "time" "github.com/containers/common/libnetwork/types" "github.com/sirupsen/logrus" @@ -36,7 +37,18 @@ func requestMachinePorts(expose bool, ports []types.PortMapping) error { url = url + "unexpose" } ctx := context.Background() - client := &http.Client{} + client := &http.Client{ + Transport: &http.Transport{ + // make sure to not set a proxy here so explicitly ignore the proxy + // since we want to talk directly to gvproxy + // https://github.com/containers/podman/issues/13628 + Proxy: nil, + MaxIdleConns: 50, + IdleConnTimeout: 30 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + }, + } buf := new(bytes.Buffer) for num, port := range ports { protocols := strings.Split(port.Protocol, ",") @@ -78,7 +90,6 @@ func requestMachinePorts(expose bool, ports []types.PortMapping) error { } func makeMachineRequest(ctx context.Context, client *http.Client, url string, buf io.Reader) error { - //var buf io.ReadWriter req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, buf) if err != nil { return err |