diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2024-02-22 16:03:28 +0100 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2024-02-23 10:40:50 +0100 |
| commit | 84d3ab740d0637a88537e54110b8a6486c3bd118 (patch) | |
| tree | ed2596e811b1c685d61c5e715f3e5db47e53fe8f /client | |
| parent | ecd4b03aa7d2902e954115a4e1b6648464c77796 (diff) | |
Client + Exports: Update to latest proxyguard API
- Add a ClientProxyReady callback
- do a DNS request for the IPs
Diffstat (limited to 'client')
| -rw-r--r-- | client/proxy.go | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/client/proxy.go b/client/proxy.go index 349a080..31a17a6 100644 --- a/client/proxy.go +++ b/client/proxy.go @@ -1,6 +1,9 @@ package client import ( + "net" + "net/url" + "codeberg.org/eduVPN/proxyguard" "github.com/eduvpn/eduvpn-common/i18nerr" "github.com/eduvpn/eduvpn-common/internal/log" @@ -21,11 +24,23 @@ func (pl *ProxyLogger) Log(msg string) { } // StartProxyguard starts proxyguard for proxied WireGuard connections -func (c *Client) StartProxyguard(ck *cookie.Cookie, listen string, tcpsp int, peer string, gotFD func(fd int)) error { +func (c *Client) StartProxyguard(ck *cookie.Cookie, listen string, tcpsp int, peer string, gotFD func(fd int), ready func()) error { var err error proxyguard.UpdateLogger(&ProxyLogger{}) proxyguard.GotClientFD = gotFD - err = proxyguard.Client(ck.Context(), listen, tcpsp, peer, -1) + proxyguard.ClientProxyReady = ready + + u, err := url.Parse(peer) + if err != nil { + return i18nerr.Wrap(err, "The peer is not a valid URL") + } + + pips, err := net.DefaultResolver.LookupHost(ck.Context(), u.Host) + if err != nil { + return i18nerr.Wrapf(err, "Cannot lookup peer host: '%s'", u.Host) + } + + err = proxyguard.Client(ck.Context(), listen, tcpsp, peer, pips, -1) if err != nil { return i18nerr.Wrap(err, "The VPN proxy exited") } |
