From 47ac0543b9ed2d4afb8814a19e2f4dc3c30030e1 Mon Sep 17 00:00:00 2001 From: kali Date: Tue, 29 Sep 2020 20:41:55 +0200 Subject: [feat] improve error handling during login --- pkg/vpn/bonafide/auth_sip.go | 12 +++++++++--- pkg/vpn/bonafide/bonafide.go | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'pkg/vpn') diff --git a/pkg/vpn/bonafide/auth_sip.go b/pkg/vpn/bonafide/auth_sip.go index 5da562d..cc9d967 100644 --- a/pkg/vpn/bonafide/auth_sip.go +++ b/pkg/vpn/bonafide/auth_sip.go @@ -44,15 +44,21 @@ func (a *sipAuthentication) getToken(user, password string) ([]byte, error) { } credJSON, err := formatCredentials(user, password) if err != nil { - return nil, fmt.Errorf("Cannot encode credentials: %s", err) + log.Println("ERROR: cannot encode credentials.", err) + return nil, fmt.Errorf("TokenErrBadCred") } resp, err := a.client.Post(a.authURI, "text/json", strings.NewReader(credJSON)) if err != nil { - return nil, fmt.Errorf("Error on auth request: %v", err) + log.Println("ERROR: failed auth request", err) + if os.IsTimeout(err) { + return nil, fmt.Errorf("TokenErrTimeout") + } else { + return nil, fmt.Errorf("TokenErrBadPost") + } } defer resp.Body.Close() if resp.StatusCode != 200 { - return nil, fmt.Errorf("Cannot get token: Error %d", resp.StatusCode) + return nil, fmt.Errorf("TokenErrBadStatus %d", resp.StatusCode) } token, err := ioutil.ReadAll(resp.Body) if err != nil { diff --git a/pkg/vpn/bonafide/bonafide.go b/pkg/vpn/bonafide/bonafide.go index 973416a..4203ba2 100644 --- a/pkg/vpn/bonafide/bonafide.go +++ b/pkg/vpn/bonafide/bonafide.go @@ -85,6 +85,7 @@ func New() *Bonafide { RootCAs: certs, }, }, + Timeout: time.Second * 10, } _, tzOffsetSeconds := time.Now().Zone() tzOffsetHours := tzOffsetSeconds / secondsPerHour @@ -129,6 +130,8 @@ func (b *Bonafide) DoLogin(username, password string) (bool, error) { } var err error + + log.Println("Bonafide: getting token...") b.token, err = b.auth.getToken(username, password) if err != nil { return false, err -- cgit v1.2.3