diff options
Diffstat (limited to 'internal/wireguard.go')
| -rw-r--r-- | internal/wireguard.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/internal/wireguard.go b/internal/wireguard.go index 4ec12bd..7977dbc 100644 --- a/internal/wireguard.go +++ b/internal/wireguard.go @@ -8,8 +8,12 @@ import ( ) func wireguardGenerateKey() (wgtypes.Key, error) { - key, error := wgtypes.GeneratePrivateKey() - return key, error + key, keyErr := wgtypes.GeneratePrivateKey() + + if keyErr != nil { + return key, &WireguardGenerateKeyError{Err: keyErr} + } + return key, nil } // FIXME: Instead of doing a regex replace, decide if we should use a parser @@ -31,14 +35,14 @@ func (server *Server) WireguardGetConfig() (string, error) { wireguardKey, wireguardErr := wireguardGenerateKey() if wireguardErr != nil { - return "", wireguardErr + return "", &WireguardGetConfigError{Err: wireguardErr} } wireguardPublicKey := wireguardKey.PublicKey().String() configWireguard, _, configErr := server.APIConnectWireguard(profile_id, wireguardPublicKey) if configErr != nil { - return "", configErr + return "", &WireguardGetConfigError{Err: wireguardErr} } // FIXME: Store expiry @@ -50,3 +54,19 @@ func (server *Server) WireguardGetConfig() (string, error) { return configWireguardKey, nil } + +type WireguardGenerateKeyError struct { + Err error +} + +func (e *WireguardGenerateKeyError) Error() string { + return fmt.Sprintf("failed generating Wireguard key with error: %v", e.Err) +} + +type WireguardGetConfigError struct { + Err error +} + +func (e *WireguardGetConfigError) Error() string { + return fmt.Sprintf("failed getting Wireguard config with error: %v", e.Err) +} |
