summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2024-02-22 16:03:28 +0100
committerJeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com>2024-02-23 10:40:50 +0100
commit84d3ab740d0637a88537e54110b8a6486c3bd118 (patch)
treeed2596e811b1c685d61c5e715f3e5db47e53fe8f /client
parentecd4b03aa7d2902e954115a4e1b6648464c77796 (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.go19
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")
}