summaryrefslogtreecommitdiff
path: root/exports
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-24 14:05:45 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-24 14:05:45 +0200
commit01cbb80b300f92c3456d3b2965630c0783607905 (patch)
treead162c4bc4bf5ebafac0d4ba44147437604c82d3 /exports
parent56f084389a3eb6b34df86af347ce60acdeb6106b (diff)
Client + Server + Exports: Implement optional WireGuard support
Diffstat (limited to 'exports')
-rw-r--r--exports/exports.go11
-rw-r--r--exports/servers.go3
2 files changed, 13 insertions, 1 deletions
diff --git a/exports/exports.go b/exports/exports.go
index 6407da4..05f2462 100644
--- a/exports/exports.go
+++ b/exports/exports.go
@@ -407,6 +407,17 @@ func InFSMState(name *C.char, checkState C.int) C.int {
return C.int(0)
}
+//export SetSupportWireguard
+func SetSupportWireguard(name *C.char, support C.int) *C.error {
+ nameStr := C.GoString(name)
+ state, stateErr := GetVPNState(nameStr)
+ if stateErr != nil {
+ return getError(stateErr)
+ }
+ state.SupportsWireguard = support == 1
+ return nil
+}
+
//export FreeString
func FreeString(addr *C.char) {
C.free(unsafe.Pointer(addr))
diff --git a/exports/servers.go b/exports/servers.go
index 57e1be1..36763b4 100644
--- a/exports/servers.go
+++ b/exports/servers.go
@@ -181,7 +181,8 @@ func getCPtrServer(state *client.Client, base *client.ServerBase) *C.server {
server.total_support_contact, server.support_contact = getCPtrListStrings(
base.SupportContact,
)
- server.profiles = getCPtrProfiles(&base.Profiles)
+ profiles := base.GetValidProfiles(state.SupportsWireguard)
+ server.profiles = getCPtrProfiles(&profiles)
// No endtime is given if we get servers when it has been partially initialised
if base.EndTime.IsZero() {
server.expire_time = C.ulonglong(0)