package okhttp3.internal.http; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InterruptedIOException; import java.net.ProtocolException; import java.net.Proxy; import java.net.SocketTimeoutException; import java.security.cert.CertificateException; import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLPeerUnverifiedException; import o.C14953gcr; import o.C14957gcv; import o.gdW; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.Route; import okhttp3.internal.Util; import okhttp3.internal.connection.Exchange; import okhttp3.internal.connection.RealCall; import okhttp3.internal.connection.RealConnection; /* loaded from: classes.dex */ public final class RetryAndFollowUpInterceptor implements Interceptor { public static final Companion Companion = new Companion(null); private static final int MAX_FOLLOW_UPS = 20; private final OkHttpClient client; public RetryAndFollowUpInterceptor(OkHttpClient okHttpClient) { C14957gcv.e(okHttpClient, ""); this.client = okHttpClient; } /* JADX WARN: Code restructure failed: missing block: B:11:0x0026, code lost: if (r5 == null) goto L10; */ /* JADX WARN: Code restructure failed: missing block: B:12:0x0028, code lost: r0 = r0.newBuilder().priorResponse(r5.newBuilder().body(null).build()).build(); */ /* JADX WARN: Code restructure failed: missing block: B:13:0x0040, code lost: r5 = r0; r0 = r1.getInterceptorScopedExchange$okhttp(); r8 = followUpRequest(r5, r0); */ /* JADX WARN: Code restructure failed: missing block: B:14:0x0049, code lost: if (r8 != null) goto L18; */ /* JADX WARN: Code restructure failed: missing block: B:15:0x005a, code lost: r0 = r8.body(); */ /* JADX WARN: Code restructure failed: missing block: B:16:0x005e, code lost: if (r0 == null) goto L24; */ /* JADX WARN: Code restructure failed: missing block: B:18:0x0064, code lost: if (r0.isOneShot() == false) goto L24; */ /* JADX WARN: Code restructure failed: missing block: B:20:0x0066, code lost: r1.exitNetworkInterceptorExchange$okhttp(false); */ /* JADX WARN: Code restructure failed: missing block: B:21:0x0069, code lost: return r5; */ /* JADX WARN: Code restructure failed: missing block: B:23:0x006a, code lost: r0 = r5.body(); */ /* JADX WARN: Code restructure failed: missing block: B:24:0x006e, code lost: if (r0 == null) goto L27; */ /* JADX WARN: Code restructure failed: missing block: B:25:0x0070, code lost: okhttp3.internal.Util.closeQuietly(r0); */ /* JADX WARN: Code restructure failed: missing block: B:26:0x0075, code lost: r6 = r6 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:27:0x0078, code lost: if (r6 > 20) goto L58; */ /* JADX WARN: Code restructure failed: missing block: B:31:0x008e, code lost: throw new java.net.ProtocolException(o.C14957gcv.c("Too many follow-up requests: ", java.lang.Integer.valueOf(r6))); */ /* JADX WARN: Code restructure failed: missing block: B:33:0x004b, code lost: if (r0 == null) goto L16; */ /* JADX WARN: Code restructure failed: missing block: B:35:0x0051, code lost: if (r0.isDuplex$okhttp() == false) goto L16; */ /* JADX WARN: Code restructure failed: missing block: B:36:0x0053, code lost: r1.timeoutEarlyExit(); */ /* JADX WARN: Code restructure failed: missing block: B:37:0x0056, code lost: r1.exitNetworkInterceptorExchange$okhttp(false); */ /* JADX WARN: Code restructure failed: missing block: B:38:0x0059, code lost: return r5; */ @Override // okhttp3.Interceptor /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public final okhttp3.Response intercept(okhttp3.Interceptor.Chain r11) throws java.io.IOException { /* r10 = this; java.lang.String r0 = "" o.C14957gcv.e(r11, r0) okhttp3.internal.http.RealInterceptorChain r11 = (okhttp3.internal.http.RealInterceptorChain) r11 okhttp3.Request r0 = r11.getRequest$okhttp() okhttp3.internal.connection.RealCall r1 = r11.getCall$okhttp() o.gaI r2 = o.C14851gaI.c java.util.List r2 = (java.util.List) r2 r3 = 0 r4 = 0 r6 = r3 r5 = r4 L17: r7 = 1 r8 = r7 L19: r1.enterNetworkInterceptorExchange(r0, r8) boolean r8 = r1.isCanceled() // Catch: java.lang.Throwable -> Ld5 if (r8 != 0) goto Lcd okhttp3.Response r0 = r11.proceed(r0) // Catch: java.io.IOException -> L8f okhttp3.internal.connection.RouteException -> La7 java.lang.Throwable -> Ld5 if (r5 == 0) goto L40 okhttp3.Response$Builder r0 = r0.newBuilder() // Catch: java.lang.Throwable -> Ld5 okhttp3.Response$Builder r5 = r5.newBuilder() // Catch: java.lang.Throwable -> Ld5 okhttp3.Response$Builder r5 = r5.body(r4) // Catch: java.lang.Throwable -> Ld5 okhttp3.Response r5 = r5.build() // Catch: java.lang.Throwable -> Ld5 okhttp3.Response$Builder r0 = r0.priorResponse(r5) // Catch: java.lang.Throwable -> Ld5 okhttp3.Response r0 = r0.build() // Catch: java.lang.Throwable -> Ld5 L40: r5 = r0 okhttp3.internal.connection.Exchange r0 = r1.getInterceptorScopedExchange$okhttp() // Catch: java.lang.Throwable -> Ld5 okhttp3.Request r8 = r10.followUpRequest(r5, r0) // Catch: java.lang.Throwable -> Ld5 if (r8 != 0) goto L5a if (r0 == 0) goto L56 boolean r11 = r0.isDuplex$okhttp() // Catch: java.lang.Throwable -> Ld5 if (r11 == 0) goto L56 r1.timeoutEarlyExit() // Catch: java.lang.Throwable -> Ld5 L56: r1.exitNetworkInterceptorExchange$okhttp(r3) return r5 L5a: okhttp3.RequestBody r0 = r8.body() // Catch: java.lang.Throwable -> Ld5 if (r0 == 0) goto L6a boolean r0 = r0.isOneShot() // Catch: java.lang.Throwable -> Ld5 if (r0 == 0) goto L6a r1.exitNetworkInterceptorExchange$okhttp(r3) return r5 L6a: okhttp3.ResponseBody r0 = r5.body() // Catch: java.lang.Throwable -> Ld5 if (r0 == 0) goto L75 java.io.Closeable r0 = (java.io.Closeable) r0 // Catch: java.lang.Throwable -> Ld5 okhttp3.internal.Util.closeQuietly(r0) // Catch: java.lang.Throwable -> Ld5 L75: int r6 = r6 + r7 r0 = 20 if (r6 > r0) goto L7f r1.exitNetworkInterceptorExchange$okhttp(r7) r0 = r8 goto L17 L7f: java.net.ProtocolException r11 = new java.net.ProtocolException // Catch: java.lang.Throwable -> Ld5 java.lang.String r0 = "Too many follow-up requests: " java.lang.Integer r2 = java.lang.Integer.valueOf(r6) // Catch: java.lang.Throwable -> Ld5 java.lang.String r0 = o.C14957gcv.c(r0, r2) // Catch: java.lang.Throwable -> Ld5 r11.(r0) // Catch: java.lang.Throwable -> Ld5 throw r11 // Catch: java.lang.Throwable -> Ld5 L8f: r8 = move-exception boolean r9 = r8 instanceof okhttp3.internal.http2.ConnectionShutdownException // Catch: java.lang.Throwable -> Ld5 r9 = r9 ^ r7 boolean r9 = r10.recover(r8, r1, r0, r9) // Catch: java.lang.Throwable -> Ld5 if (r9 == 0) goto La0 java.util.Collection r2 = (java.util.Collection) r2 // Catch: java.lang.Throwable -> Ld5 java.util.List r2 = o.C14881gav.a(r2, r8) // Catch: java.lang.Throwable -> Ld5 goto Lbc La0: java.lang.Exception r8 = (java.lang.Exception) r8 // Catch: java.lang.Throwable -> Ld5 java.lang.Throwable r11 = okhttp3.internal.Util.withSuppressed(r8, r2) // Catch: java.lang.Throwable -> Ld5 throw r11 // Catch: java.lang.Throwable -> Ld5 La7: r8 = move-exception java.io.IOException r9 = r8.getLastConnectException() // Catch: java.lang.Throwable -> Ld5 boolean r9 = r10.recover(r9, r1, r0, r3) // Catch: java.lang.Throwable -> Ld5 if (r9 == 0) goto Lc2 java.util.Collection r2 = (java.util.Collection) r2 // Catch: java.lang.Throwable -> Ld5 java.io.IOException r8 = r8.getFirstConnectException() // Catch: java.lang.Throwable -> Ld5 java.util.List r2 = o.C14881gav.a(r2, r8) // Catch: java.lang.Throwable -> Ld5 Lbc: r1.exitNetworkInterceptorExchange$okhttp(r7) r8 = r3 goto L19 Lc2: java.io.IOException r11 = r8.getFirstConnectException() // Catch: java.lang.Throwable -> Ld5 java.lang.Exception r11 = (java.lang.Exception) r11 // Catch: java.lang.Throwable -> Ld5 java.lang.Throwable r11 = okhttp3.internal.Util.withSuppressed(r11, r2) // Catch: java.lang.Throwable -> Ld5 throw r11 // Catch: java.lang.Throwable -> Ld5 Lcd: java.io.IOException r11 = new java.io.IOException // Catch: java.lang.Throwable -> Ld5 java.lang.String r0 = "Canceled" r11.(r0) // Catch: java.lang.Throwable -> Ld5 throw r11 // Catch: java.lang.Throwable -> Ld5 Ld5: r11 = move-exception r1.exitNetworkInterceptorExchange$okhttp(r7) throw r11 */ throw new UnsupportedOperationException("Method not decompiled: okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(okhttp3.Interceptor$Chain):okhttp3.Response"); } private final boolean recover(IOException iOException, RealCall realCall, Request request, boolean z) { if (this.client.retryOnConnectionFailure()) { return !(z && requestIsOneShot(iOException, request)) && isRecoverable(iOException, z) && realCall.retryAfterFailure(); } return false; } private final boolean requestIsOneShot(IOException iOException, Request request) { RequestBody body = request.body(); return (body != null && body.isOneShot()) || (iOException instanceof FileNotFoundException); } private final boolean isRecoverable(IOException iOException, boolean z) { if (iOException instanceof ProtocolException) { return false; } return iOException instanceof InterruptedIOException ? (iOException instanceof SocketTimeoutException) && !z : (((iOException instanceof SSLHandshakeException) && (iOException.getCause() instanceof CertificateException)) || (iOException instanceof SSLPeerUnverifiedException)) ? false : true; } private final Request followUpRequest(Response response, Exchange exchange) throws IOException { RealConnection connection$okhttp; Route route = (exchange == null || (connection$okhttp = exchange.getConnection$okhttp()) == null) ? null : connection$okhttp.route(); int code = response.code(); String method = response.request().method(); if (code != 307 && code != 308) { if (code == 401) { return this.client.authenticator().authenticate(route, response); } if (code == 421) { RequestBody body = response.request().body(); if ((body != null && body.isOneShot()) || exchange == null || !exchange.isCoalescedConnection$okhttp()) { return null; } exchange.getConnection$okhttp().noCoalescedConnections$okhttp(); return response.request(); } if (code == 503) { Response priorResponse = response.priorResponse(); if ((priorResponse == null || priorResponse.code() != 503) && retryAfter(response, Integer.MAX_VALUE) == 0) { return response.request(); } return null; } if (code == 407) { C14957gcv.e(route); if (route.proxy().type() != Proxy.Type.HTTP) { throw new ProtocolException("Received HTTP_PROXY_AUTH (407) code while not using proxy"); } return this.client.proxyAuthenticator().authenticate(route, response); } if (code == 408) { if (!this.client.retryOnConnectionFailure()) { return null; } RequestBody body2 = response.request().body(); if (body2 != null && body2.isOneShot()) { return null; } Response priorResponse2 = response.priorResponse(); if ((priorResponse2 == null || priorResponse2.code() != 408) && retryAfter(response, 0) <= 0) { return response.request(); } return null; } switch (code) { case 300: case 301: case 302: case 303: break; default: return null; } } return buildRedirectRequest(response, method); } private final Request buildRedirectRequest(Response response, String str) { String header$default; HttpUrl resolve; if (!this.client.followRedirects() || (header$default = Response.header$default(response, com.google.common.net.HttpHeaders.LOCATION, null, 2, null)) == null || (resolve = response.request().url().resolve(header$default)) == null) { return null; } if (!C14957gcv.b((Object) resolve.scheme(), (Object) response.request().url().scheme()) && !this.client.followSslRedirects()) { return null; } Request.Builder newBuilder = response.request().newBuilder(); if (HttpMethod.permitsRequestBody(str)) { int code = response.code(); boolean z = HttpMethod.INSTANCE.redirectsWithBody(str) || code == 308 || code == 307; if (HttpMethod.INSTANCE.redirectsToGet(str) && code != 308 && code != 307) { newBuilder.method("GET", null); } else { newBuilder.method(str, z ? response.request().body() : null); } if (!z) { newBuilder.removeHeader(com.google.common.net.HttpHeaders.TRANSFER_ENCODING); newBuilder.removeHeader(com.google.common.net.HttpHeaders.CONTENT_LENGTH); newBuilder.removeHeader(com.google.common.net.HttpHeaders.CONTENT_TYPE); } } if (!Util.canReuseConnectionFor(response.request().url(), resolve)) { newBuilder.removeHeader(com.google.common.net.HttpHeaders.AUTHORIZATION); } return newBuilder.url(resolve).build(); } private final int retryAfter(Response response, int i) { String header$default = Response.header$default(response, com.google.common.net.HttpHeaders.RETRY_AFTER, null, 2, null); if (header$default == null) { return i; } String str = header$default; gdW gdw = new gdW("\\d+"); C14957gcv.e(str, ""); if (!gdw.e.matcher(str).matches()) { return Integer.MAX_VALUE; } Integer valueOf = Integer.valueOf(header$default); C14957gcv.c(valueOf, ""); return valueOf.intValue(); } /* loaded from: classes.dex */ public static final class Companion { private Companion() { } public /* synthetic */ Companion(C14953gcr c14953gcr) { this(); } } }