diff options
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) |
