diff --git a/client/client.go b/client/client.go index e8f7813ee0c9bb23ceecda565795c46311221d12..1a3ef1a5cbfb7f980bd492d044415e0814a2157d 100644 --- a/client/client.go +++ b/client/client.go @@ -186,14 +186,9 @@ func (c *Client) Start() (bool, error) { c.updateState(running) - proxyAddr, err := net.ResolveUDPAddr("udp", c.ProxyAddr) - if err != nil { - return false, fmt.Errorf("cannot resolve UDP addr: %w", err) - } - - c.openvpnConn, err = net.ListenUDP("udp", proxyAddr) + c.openvpnConn, err = c.createOpenvpnConnection() if err != nil { - return false, fmt.Errorf("error accepting udp connection: %w", err) + return false, err } if c.hopEnabled { @@ -466,7 +461,12 @@ func (c *Client) createOpenvpnConnection() (*net.UDPConn, error) { return nil, err } - return net.ListenUDP("udp", proxyAddr) + udpConn, err := net.ListenUDP("udp", proxyAddr) + if err != nil { + c.error("error accepting udp connection: %v", err) + return nil, fmt.Errorf("error accepting udp connection: %w", err) + } + return udpConn, nil } func (c *Client) Stop() (bool, error) {