From c55b43115bdb9a597520acd87df6d7ca249f1f69 Mon Sep 17 00:00:00 2001 From: Patrick Collins Date: Fri, 29 Jan 2021 19:34:08 -0800 Subject: [PATCH] login before checking status the status enpoint requires auth, at least in my Cloud Key Firmware 2.X (UniFi OS) setup. Presumably there are benefits to checking status before logging in; in which case I expect this PR will need to be edited. --- unifi/unifi.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/unifi/unifi.go b/unifi/unifi.go index 89a9748..77600a7 100644 --- a/unifi/unifi.go +++ b/unifi/unifi.go @@ -147,12 +147,6 @@ func (c *Client) Login(ctx context.Context, user, pass string) error { } `json:"meta"` } - err = c.do(ctx, "GET", c.statusPath, nil, &status) - if err != nil { - return err - } - c.version = status.Meta.ServerVersion - err = c.do(ctx, "POST", c.loginPath, &struct { Username string `json:"username"` Password string `json:"password"` @@ -164,6 +158,12 @@ func (c *Client) Login(ctx context.Context, user, pass string) error { return err } + err = c.do(ctx, "GET", c.statusPath, nil, &status) + if err != nil { + return err + } + c.version = status.Meta.ServerVersion + return nil }