From c46ba9db8fc8506eea3b1ac50528bc2ca6a12f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Tue, 23 Jul 2024 15:53:18 +0530 Subject: [PATCH] Use environment var for ResolveIPAddressTimeout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: மனோஜ்குமார் பழனிச்சாமி --- pkg/networks/usernet/client.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/networks/usernet/client.go b/pkg/networks/usernet/client.go index adc035391b19..87632e6ad20a 100644 --- a/pkg/networks/usernet/client.go +++ b/pkg/networks/usernet/client.go @@ -7,6 +7,8 @@ import ( "fmt" "net" "net/http" + "os" + "strconv" "time" gvproxyclient "github.com/containers/gvisor-tap-vsock/pkg/client" @@ -74,11 +76,19 @@ func (c *Client) ResolveAndForwardSSH(ipAddr string, sshPort int) error { } func (c *Client) ResolveIPAddress(ctx context.Context, vmMacAddr string) (string, error) { - timeout := time.After(2 * time.Minute) + ResolveIPAddressTimeout := 2 * time.Minute + ResolveIPAddressTimeoutEnv := os.Getenv("RESOLVE_IP_ADDRESS_TIMEOUT") + if ResolveIPAddressTimeoutEnv != "" { + if parsedTimeout, err := strconv.Atoi(ResolveIPAddressTimeoutEnv); err == nil { + ResolveIPAddressTimeout = parsedTimeout * time.Minute + } + } + ctx, cancel := context.WithTimeout(ctx, ResolveIPAddressTimeout) + defer cancel() ticker := time.NewTicker(500 * time.Millisecond) for { select { - case <-timeout: + case <-ctx.Done(): return "", errors.New("usernet unable to resolve IP for SSH forwarding") case <-ticker.C: leases, err := c.Leases(ctx)