summaryrefslogtreecommitdiff
path: root/client/client.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2023-09-06 16:48:16 +0200
committerJeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com>2023-09-25 09:43:37 +0200
commitb52974ebb7995c854baa9682f37a1b0f409f511b (patch)
tree6162307cd0256ee584d0398c589aa0d71de1c9ef /client/client.go
parent9697ea01b79cde6c8901d7853dc0b414acf84fa7 (diff)
Client: Refresh server endpoints on renew and cleanup
Diffstat (limited to 'client/client.go')
-rw-r--r--client/client.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/client/client.go b/client/client.go
index eab704a..c54dd0e 100644
--- a/client/client.go
+++ b/client/client.go
@@ -835,6 +835,19 @@ func (c *Client) Cleanup(ck *cookie.Cookie) (err error) {
if err != nil {
return i18nerr.Wrap(err, "Failed to get the current server to cleanup the connection")
}
+
+ err = srv.RefreshEndpoints(ck.Context(), &c.Discovery)
+
+ // If we get a canceled error, return that, otherwise just log the error
+ if err != nil {
+ if errors.Is(err, context.Canceled) {
+ return i18nerr.Wrap(err, "Cleanup was canceled")
+ }
+
+ log.Logger.Warningf("failed to refresh server endpoints: %v", err)
+ }
+
+
defer c.SaveState()
err = c.updateTokens(srv)
if err != nil {
@@ -884,6 +897,18 @@ func (c *Client) RenewSession(ck *cookie.Cookie) (err error) {
if !c.FSM.InState(StateLoadingServer) {
c.FSM.GoTransition(StateLoadingServer) //nolint:errcheck
}
+ err = srv.RefreshEndpoints(ck.Context(), &c.Discovery)
+
+ // If we get a canceled error, return that, otherwise just log the error
+ if err != nil {
+ if errors.Is(err, context.Canceled) {
+ return i18nerr.Wrap(err, "Renewing was canceled")
+ }
+
+ log.Logger.Warningf("failed to refresh server endpoints: %v", err)
+ }
+
+
// update tokens in the end
defer func() {
terr := c.forwardTokens(srv)