summaryrefslogtreecommitdiff
path: root/internal/wireguard.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-05-02 14:34:35 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-05-02 14:34:35 +0200
commit466450f0c47bdc614e66326d90e5fc6fb56ae732 (patch)
treea01518a58d50d2f8449d37dadecc40e35c9f1fe1 /internal/wireguard.go
parenta2a8efdcaad3d9b1852b1367a7cd7e8c5860cecf (diff)
Refactor: Wrap most errors in a custom type
Diffstat (limited to 'internal/wireguard.go')
-rw-r--r--internal/wireguard.go28
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)
+}