mirror of
https://github.com/gilbertchen/duplicacy
synced 2025-12-06 00:03:38 +00:00
Refresh token unconditionally on authorization errors
This commit is contained in:
@@ -82,7 +82,7 @@ func NewHubicClient(tokenFile string) (*HubicClient, error) {
|
||||
CredentialLock: &sync.Mutex{},
|
||||
}
|
||||
|
||||
err = client.RefreshToken()
|
||||
err = client.RefreshToken(false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -186,7 +186,7 @@ func (client *HubicClient) call(url string, method string, input interface{}, ex
|
||||
return nil, 0, "", HubicError{Status: response.StatusCode, Message: "Authorization error when retrieving credentials"}
|
||||
}
|
||||
|
||||
err = client.RefreshToken()
|
||||
err = client.RefreshToken(true)
|
||||
if err != nil {
|
||||
return nil, 0, "", err
|
||||
}
|
||||
@@ -210,11 +210,11 @@ func (client *HubicClient) call(url string, method string, input interface{}, ex
|
||||
return nil, 0, "", fmt.Errorf("Maximum number of retries reached")
|
||||
}
|
||||
|
||||
func (client *HubicClient) RefreshToken() (err error) {
|
||||
func (client *HubicClient) RefreshToken(force bool) (err error) {
|
||||
client.TokenLock.Lock()
|
||||
defer client.TokenLock.Unlock()
|
||||
|
||||
if client.Token.Valid() {
|
||||
if !force && client.Token.Valid() {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,8 @@ func NewOneDriveClient(tokenFile string) (*OneDriveClient, error) {
|
||||
TokenLock: &sync.Mutex{},
|
||||
}
|
||||
|
||||
client.RefreshToken(false)
|
||||
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -154,7 +156,7 @@ func (client *OneDriveClient) call(url string, method string, input interface{},
|
||||
return nil, 0, OneDriveError{Status: response.StatusCode, Message: "Authorization error when refreshing token"}
|
||||
}
|
||||
|
||||
err = client.RefreshToken()
|
||||
err = client.RefreshToken(true)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
@@ -178,11 +180,11 @@ func (client *OneDriveClient) call(url string, method string, input interface{},
|
||||
return nil, 0, fmt.Errorf("Maximum number of retries reached")
|
||||
}
|
||||
|
||||
func (client *OneDriveClient) RefreshToken() (err error) {
|
||||
func (client *OneDriveClient) RefreshToken(force bool) (err error) {
|
||||
client.TokenLock.Lock()
|
||||
defer client.TokenLock.Unlock()
|
||||
|
||||
if client.Token.Valid() {
|
||||
if !force && client.Token.Valid() {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user