From 37fc2fde43587a3c8d38570217ef8d4629b7d81a 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 Resolving IP Address Timeout 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..83c9f3a94c66 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("LIMA_USERNET_RESOLVE_IP_ADDRESS_TIMEOUT") + if resolveIPAddressTimeoutEnv != "" { + if parsedTimeout, err := strconv.Atoi(resolveIPAddressTimeoutEnv); err == nil { + resolveIPAddressTimeout = time.Duration(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)