mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-27 04:04:43 +01:00
Respect rate limit in send jobs.
This commit is contained in:
committed by
Michelle Tang
parent
d1c02ac454
commit
635aa8791f
@@ -108,7 +108,7 @@ object NetworkResultUtil {
|
||||
404 -> UnregisteredUserException(destination, result.exception)
|
||||
409 -> MismatchedDevicesException(result.parseJsonBody())
|
||||
410 -> StaleDevicesException(result.parseJsonBody())
|
||||
413, 429 -> RateLimitException(result.code, "Rate Limited", Optional.ofNullable(result.header("retry-after")?.toLongOrNull()))
|
||||
413, 429 -> RateLimitException(result.code, "Rate Limited", Optional.ofNullable(result.header("retry-after")?.toLongOrNull()?.seconds?.inWholeMilliseconds))
|
||||
428 -> ProofRequiredException(result.parseJsonBody(), result.header("retry-after")?.toLongOrNull() ?: -1)
|
||||
508 -> ServerRejectedException()
|
||||
else -> result.exception
|
||||
@@ -147,7 +147,7 @@ object NetworkResultUtil {
|
||||
404 -> NotFoundException("At least one unregistered user is message send.")
|
||||
409 -> GroupMismatchedDevicesException(result.parseJsonBody())
|
||||
410 -> GroupStaleDevicesException(result.parseJsonBody())
|
||||
413, 429 -> throw RateLimitException(result.code, "Rate Limited", Optional.ofNullable(result.header("retry-after")?.toLongOrNull()))
|
||||
413, 429 -> throw RateLimitException(result.code, "Rate Limited", Optional.ofNullable(result.header("retry-after")?.toLongOrNull()?.seconds?.inWholeMilliseconds))
|
||||
508 -> ServerRejectedException()
|
||||
else -> result.exception
|
||||
}
|
||||
|
||||
@@ -1944,7 +1944,8 @@ public class SignalServiceMessageSender {
|
||||
MismatchedDevicesException |
|
||||
StaleDevicesException |
|
||||
ProofRequiredException |
|
||||
ServerRejectedException e) {
|
||||
ServerRejectedException |
|
||||
RateLimitException e) {
|
||||
// Non-technical failures shouldn't be retried with socket
|
||||
throw e;
|
||||
} catch (WebSocketUnavailableException e) {
|
||||
@@ -2166,7 +2167,8 @@ public class SignalServiceMessageSender {
|
||||
throwable instanceof MismatchedDevicesException ||
|
||||
throwable instanceof StaleDevicesException ||
|
||||
throwable instanceof ProofRequiredException ||
|
||||
throwable instanceof ServerRejectedException)
|
||||
throwable instanceof ServerRejectedException ||
|
||||
throwable instanceof RateLimitException)
|
||||
{
|
||||
// Non-technical failures shouldn't be retried with socket
|
||||
return Single.error(throwable);
|
||||
@@ -2456,7 +2458,8 @@ public class SignalServiceMessageSender {
|
||||
NotFoundException |
|
||||
GroupMismatchedDevicesException |
|
||||
GroupStaleDevicesException |
|
||||
ServerRejectedException e) {
|
||||
ServerRejectedException |
|
||||
RateLimitException e) {
|
||||
// Non-technical failures shouldn't be retried with socket
|
||||
throw e;
|
||||
} catch (WebSocketUnavailableException e) {
|
||||
|
||||
Reference in New Issue
Block a user