mirror of
https://github.com/jkl1337/duplicacy.git
synced 2026-01-02 11:44:45 -06: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{},
|
CredentialLock: &sync.Mutex{},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = client.RefreshToken()
|
err = client.RefreshToken(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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"}
|
return nil, 0, "", HubicError{Status: response.StatusCode, Message: "Authorization error when retrieving credentials"}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = client.RefreshToken()
|
err = client.RefreshToken(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, "", err
|
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")
|
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()
|
client.TokenLock.Lock()
|
||||||
defer client.TokenLock.Unlock()
|
defer client.TokenLock.Unlock()
|
||||||
|
|
||||||
if client.Token.Valid() {
|
if !force && client.Token.Valid() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ func NewOneDriveClient(tokenFile string) (*OneDriveClient, error) {
|
|||||||
TokenLock: &sync.Mutex{},
|
TokenLock: &sync.Mutex{},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
client.RefreshToken(false)
|
||||||
|
|
||||||
return client, nil
|
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"}
|
return nil, 0, OneDriveError{Status: response.StatusCode, Message: "Authorization error when refreshing token"}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = client.RefreshToken()
|
err = client.RefreshToken(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
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")
|
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()
|
client.TokenLock.Lock()
|
||||||
defer client.TokenLock.Unlock()
|
defer client.TokenLock.Unlock()
|
||||||
|
|
||||||
if client.Token.Valid() {
|
if !force && client.Token.Valid() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user