diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-10-24 14:05:45 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-10-24 14:05:45 +0200 |
| commit | 01cbb80b300f92c3456d3b2965630c0783607905 (patch) | |
| tree | ad162c4bc4bf5ebafac0d4ba44147437604c82d3 /exports | |
| parent | 56f084389a3eb6b34df86af347ce60acdeb6106b (diff) | |
Client + Server + Exports: Implement optional WireGuard support
Diffstat (limited to 'exports')
| -rw-r--r-- | exports/exports.go | 11 | ||||
| -rw-r--r-- | exports/servers.go | 3 |
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) |
