in Sources/OSS/Internal/RetryerMiddleware.swift [8:25]
func retrying(request _: RequestMessage, context: ExecuteContext, error: Error) {
// fix time
guard let serverError = error as? ServerError else {
return
}
if serverError.code == "RequestTimeTooSkewed" ||
(serverError.code == "InvalidArgument" &&
serverError.message == "Invalid signing date in Authorization header.")
{
if let time = serverError.errorFields["ServerTime"] {
let data = DateFormatter.iso8601DateTimeSeconds.date(from: time)
context.signingContext?.clockOffset = data?.timeIntervalSince(Date())
} else if let time = serverError.headers[caseInsensitive: "Date"] {
let data = DateFormatter.rfc5322DateTime.date(from: time)
context.signingContext?.clockOffset = data?.timeIntervalSince(Date())
}
}
}