code: func (c *Client) ntlmReAuth(req *http.Request, credHelper creds.CredentialHelper, creds creds.Creds, retry bool) (*http.Response, error) {
  	ntmlCreds, err := ntlmGetCredentials(creds)
  	if err != nil {
  		return nil, err
  	}
  
  	res, err := c.ntlmAuthenticateRequest(req, ntmlCreds)
  	if err != nil && !errors.IsAuthError(err) {
  		return res, err
  	}
  
  	switch res.StatusCode {
  	case 401:
  		credHelper.Reject(creds)
  		if retry {
  			return c.ntlmReAuth(req, credHelper, creds, false)
  		}
  	case 403:
  		credHelper.Reject(creds)
  	default:
  		if res.StatusCode < 300 && res.StatusCode > 199 {
  			credHelper.Approve(creds)
  		}
  	}
  
  	return res, nil
  }
docs: // If the status is 401 then we need to re-authenticate