Rabbit-R1/original r1/java/sources/okhttp3/internal/http2/Http2Connection.java
2024-05-21 17:08:36 -04:00

1310 lines
73 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package okhttp3.internal.http2;
import io.sentry.SentryEnvelopeItemHeader;
import io.sentry.okhttp.SentryOkHttpEventListener;
import io.sentry.protocol.OperatingSystem;
import io.sentry.protocol.SentryThread;
import io.sentry.protocol.TransactionInfo;
import java.io.Closeable;
import java.io.IOException;
import java.net.Socket;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import okhttp3.internal.Util;
import okhttp3.internal.concurrent.Task;
import okhttp3.internal.concurrent.TaskQueue;
import okhttp3.internal.concurrent.TaskQueue$execute$1;
import okhttp3.internal.concurrent.TaskRunner;
import okhttp3.internal.http2.Http2Reader;
import okhttp3.internal.platform.Platform;
import okio.Buffer;
import okio.BufferedSink;
import okio.BufferedSource;
import okio.ByteString;
import okio.Okio;
/* compiled from: Http2Connection.kt */
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000´\u0001\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\t\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010#\n\u0002\u0010\b\n\u0002\b\f\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010%\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u000b\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u001d\n\u0002\u0018\u0002\n\u0002\b\u0014\u0018\u0000 \u0099\u00012\u00020\u0001:\b\u0098\u0001\u0099\u0001\u009a\u0001\u009b\u0001B\u000f\b\u0000\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0006\u0010P\u001a\u00020QJ\b\u0010R\u001a\u00020QH\u0016J'\u0010R\u001a\u00020Q2\u0006\u0010S\u001a\u00020T2\u0006\u0010U\u001a\u00020T2\b\u0010V\u001a\u0004\u0018\u00010WH\u0000¢\u0006\u0002\bXJ\u0012\u0010Y\u001a\u00020Q2\b\u0010Z\u001a\u0004\u0018\u00010WH\u0002J\u0006\u0010[\u001a\u00020QJ\u0010\u0010\\\u001a\u0004\u0018\u00010B2\u0006\u0010]\u001a\u00020\u0012J\u000e\u0010^\u001a\u00020\t2\u0006\u0010_\u001a\u00020\u0006J&\u0010`\u001a\u00020B2\u0006\u0010a\u001a\u00020\u00122\f\u0010b\u001a\b\u0012\u0004\u0012\u00020d0c2\u0006\u0010e\u001a\u00020\tH\u0002J\u001c\u0010`\u001a\u00020B2\f\u0010b\u001a\b\u0012\u0004\u0012\u00020d0c2\u0006\u0010e\u001a\u00020\tJ\u0006\u0010f\u001a\u00020\u0012J-\u0010g\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0006\u0010i\u001a\u00020j2\u0006\u0010k\u001a\u00020\u00122\u0006\u0010l\u001a\u00020\tH\u0000¢\u0006\u0002\bmJ+\u0010n\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\f\u0010b\u001a\b\u0012\u0004\u0012\u00020d0c2\u0006\u0010l\u001a\u00020\tH\u0000¢\u0006\u0002\boJ#\u0010p\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\f\u0010b\u001a\b\u0012\u0004\u0012\u00020d0cH\u0000¢\u0006\u0002\bqJ\u001d\u0010r\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0006\u0010s\u001a\u00020TH\u0000¢\u0006\u0002\btJ$\u0010u\u001a\u00020B2\u0006\u0010a\u001a\u00020\u00122\f\u0010b\u001a\b\u0012\u0004\u0012\u00020d0c2\u0006\u0010e\u001a\u00020\tJ\u0015\u0010v\u001a\u00020\t2\u0006\u0010h\u001a\u00020\u0012H\u0000¢\u0006\u0002\bwJ\u0017\u0010x\u001a\u0004\u0018\u00010B2\u0006\u0010h\u001a\u00020\u0012H\u0000¢\u0006\u0002\byJ\r\u0010z\u001a\u00020QH\u0000¢\u0006\u0002\b{J\u000e\u0010|\u001a\u00020Q2\u0006\u0010}\u001a\u00020&J\u000e\u0010~\u001a\u00020Q2\u0006\u0010\u007f\u001a\u00020TJ\u001e\u0010\u0080\u0001\u001a\u00020Q2\t\b\u0002\u0010\u0081\u0001\u001a\u00020\t2\b\b\u0002\u0010E\u001a\u00020FH\u0007J\u0018\u0010\u0082\u0001\u001a\u00020Q2\u0007\u0010\u0083\u0001\u001a\u00020\u0006H\u0000¢\u0006\u0003\b\u0084\u0001J,\u0010\u0085\u0001\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0007\u0010\u0086\u0001\u001a\u00020\t2\n\u0010\u0087\u0001\u001a\u0005\u0018\u00010\u0088\u00012\u0006\u0010k\u001a\u00020\u0006J/\u0010\u0089\u0001\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0007\u0010\u0086\u0001\u001a\u00020\t2\r\u0010\u008a\u0001\u001a\b\u0012\u0004\u0012\u00020d0cH\u0000¢\u0006\u0003\b\u008b\u0001J\u0007\u0010\u008c\u0001\u001a\u00020QJ\"\u0010\u008c\u0001\u001a\u00020Q2\u0007\u0010\u008d\u0001\u001a\u00020\t2\u0007\u0010\u008e\u0001\u001a\u00020\u00122\u0007\u0010\u008f\u0001\u001a\u00020\u0012J\u0007\u0010\u0090\u0001\u001a\u00020QJ\u001f\u0010\u0091\u0001\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0006\u0010\u007f\u001a\u00020TH\u0000¢\u0006\u0003\b\u0092\u0001J\u001f\u0010\u0093\u0001\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0006\u0010s\u001a\u00020TH\u0000¢\u0006\u0003\b\u0094\u0001J \u0010\u0095\u0001\u001a\u00020Q2\u0006\u0010h\u001a\u00020\u00122\u0007\u0010\u0096\u0001\u001a\u00020\u0006H\u0000¢\u0006\u0003\b\u0097\u0001R\u000e\u0010\u0005\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0007\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\b\u001a\u00020\tX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\n\u0010\u000bR\u0014\u0010\f\u001a\u00020\rX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u000e\u0010\u000fR\u0014\u0010\u0010\u001a\b\u0012\u0004\u0012\u00020\u00120\u0011X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0013\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0014\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0015\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0016\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0017\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0018\u001a\u00020\tX\u0082\u000e¢\u0006\u0002\n\u0000R\u001a\u0010\u0019\u001a\u00020\u0012X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u001a\u0010\u001b\"\u0004\b\u001c\u0010\u001dR\u0014\u0010\u001e\u001a\u00020\u001fX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b \u0010!R\u001a\u0010\"\u001a\u00020\u0012X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b#\u0010\u001b\"\u0004\b$\u0010\u001dR\u0011\u0010%\u001a\u00020&¢\u0006\b\n\u0000\u001a\u0004\b'\u0010(R\u001a\u0010)\u001a\u00020&X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b*\u0010(\"\u0004\b+\u0010,R\u000e\u0010-\u001a\u00020.X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010/\u001a\u000200X\u0082\u0004¢\u0006\u0002\n\u0000R\u001e\u00102\u001a\u00020\u00062\u0006\u00101\u001a\u00020\u0006@BX\u0086\u000e¢\u0006\b\n\u0000\u001a\u0004\b3\u00104R\u001e\u00105\u001a\u00020\u00062\u0006\u00101\u001a\u00020\u0006@BX\u0086\u000e¢\u0006\b\n\u0000\u001a\u0004\b6\u00104R\u0015\u00107\u001a\u000608R\u00020\u0000¢\u0006\b\n\u0000\u001a\u0004\b9\u0010:R\u000e\u0010;\u001a\u000200X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010<\u001a\u00020=X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b>\u0010?R \u0010@\u001a\u000e\u0012\u0004\u0012\u00020\u0012\u0012\u0004\u0012\u00020B0AX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\bC\u0010DR\u000e\u0010E\u001a\u00020FX\u0082\u0004¢\u0006\u0002\n\u0000R\u001e\u0010G\u001a\u00020\u00062\u0006\u00101\u001a\u00020\u0006@BX\u0086\u000e¢\u0006\b\n\u0000\u001a\u0004\bH\u00104R\u001e\u0010I\u001a\u00020\u00062\u0006\u00101\u001a\u00020\u0006@BX\u0086\u000e¢\u0006\b\n\u0000\u001a\u0004\bJ\u00104R\u0011\u0010K\u001a\u00020L¢\u0006\b\n\u0000\u001a\u0004\bM\u0010NR\u000e\u0010O\u001a\u000200X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u009c\u0001"}, d2 = {"Lokhttp3/internal/http2/Http2Connection;", "Ljava/io/Closeable;", "builder", "Lokhttp3/internal/http2/Http2Connection$Builder;", "(Lokhttp3/internal/http2/Http2Connection$Builder;)V", "awaitPingsSent", "", "awaitPongsReceived", "client", "", "getClient$okhttp", "()Z", "connectionName", "", "getConnectionName$okhttp", "()Ljava/lang/String;", "currentPushRequests", "", "", "degradedPingsSent", "degradedPongDeadlineNs", "degradedPongsReceived", "intervalPingsSent", "intervalPongsReceived", "isShutdown", "lastGoodStreamId", "getLastGoodStreamId$okhttp", "()I", "setLastGoodStreamId$okhttp", "(I)V", "listener", "Lokhttp3/internal/http2/Http2Connection$Listener;", "getListener$okhttp", "()Lokhttp3/internal/http2/Http2Connection$Listener;", "nextStreamId", "getNextStreamId$okhttp", "setNextStreamId$okhttp", "okHttpSettings", "Lokhttp3/internal/http2/Settings;", "getOkHttpSettings", "()Lokhttp3/internal/http2/Settings;", "peerSettings", "getPeerSettings", "setPeerSettings", "(Lokhttp3/internal/http2/Settings;)V", "pushObserver", "Lokhttp3/internal/http2/PushObserver;", "pushQueue", "Lokhttp3/internal/concurrent/TaskQueue;", "<set-?>", "readBytesAcknowledged", "getReadBytesAcknowledged", "()J", "readBytesTotal", "getReadBytesTotal", "readerRunnable", "Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;", "getReaderRunnable", "()Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;", "settingsListenerQueue", "socket", "Ljava/net/Socket;", "getSocket$okhttp", "()Ljava/net/Socket;", "streams", "", "Lokhttp3/internal/http2/Http2Stream;", "getStreams$okhttp", "()Ljava/util/Map;", "taskRunner", "Lokhttp3/internal/concurrent/TaskRunner;", "writeBytesMaximum", "getWriteBytesMaximum", "writeBytesTotal", "getWriteBytesTotal", "writer", "Lokhttp3/internal/http2/Http2Writer;", "getWriter", "()Lokhttp3/internal/http2/Http2Writer;", "writerQueue", "awaitPong", "", "close", "connectionCode", "Lokhttp3/internal/http2/ErrorCode;", "streamCode", "cause", "Ljava/io/IOException;", "close$okhttp", "failConnection", "e", "flush", "getStream", "id", "isHealthy", "nowNs", "newStream", "associatedStreamId", "requestHeaders", "", "Lokhttp3/internal/http2/Header;", "out", "openStreamCount", "pushDataLater", "streamId", TransactionInfo.JsonKeys.SOURCE, "Lokio/BufferedSource;", "byteCount", "inFinished", "pushDataLater$okhttp", "pushHeadersLater", "pushHeadersLater$okhttp", "pushRequestLater", "pushRequestLater$okhttp", "pushResetLater", "errorCode", "pushResetLater$okhttp", "pushStream", "pushedStream", "pushedStream$okhttp", "removeStream", "removeStream$okhttp", "sendDegradedPingLater", "sendDegradedPingLater$okhttp", "setSettings", "settings", "shutdown", "statusCode", "start", "sendConnectionPreface", "updateConnectionFlowControl", "read", "updateConnectionFlowControl$okhttp", "writeData", "outFinished", "buffer", "Lokio/Buffer;", "writeHeaders", "alternating", "writeHeaders$okhttp", "writePing", "reply", "payload1", "payload2", "writePingAndAwaitPong", "writeSynReset", "writeSynReset$okhttp", "writeSynResetLater", "writeSynResetLater$okhttp", "writeWindowUpdateLater", "unacknowledgedBytesRead", "writeWindowUpdateLater$okhttp", "Builder", "Companion", "Listener", "ReaderRunnable", "okhttp"}, k = 1, mv = {1, 4, 0})
/* loaded from: classes3.dex */
public final class Http2Connection implements Closeable {
public static final int AWAIT_PING = 3;
/* renamed from: Companion, reason: from kotlin metadata */
public static final Companion INSTANCE = new Companion(null);
private static final Settings DEFAULT_SETTINGS;
public static final int DEGRADED_PING = 2;
public static final int DEGRADED_PONG_TIMEOUT_NS = 1000000000;
public static final int INTERVAL_PING = 1;
public static final int OKHTTP_CLIENT_WINDOW_SIZE = 16777216;
private long awaitPingsSent;
private long awaitPongsReceived;
private final boolean client;
private final String connectionName;
private final Set<Integer> currentPushRequests;
private long degradedPingsSent;
private long degradedPongDeadlineNs;
private long degradedPongsReceived;
private long intervalPingsSent;
private long intervalPongsReceived;
private boolean isShutdown;
private int lastGoodStreamId;
private final Listener listener;
private int nextStreamId;
private final Settings okHttpSettings;
private Settings peerSettings;
private final PushObserver pushObserver;
private final TaskQueue pushQueue;
private long readBytesAcknowledged;
private long readBytesTotal;
private final ReaderRunnable readerRunnable;
private final TaskQueue settingsListenerQueue;
private final Socket socket;
private final Map<Integer, Http2Stream> streams;
private final TaskRunner taskRunner;
private long writeBytesMaximum;
private long writeBytesTotal;
private final Http2Writer writer;
private final TaskQueue writerQueue;
/* compiled from: Http2Connection.kt */
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b&\u0018\u0000 \f2\u00020\u0001:\u0001\fB\u0005¢\u0006\u0002\u0010\u0002J\u0018\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\bH\u0016J\u0010\u0010\t\u001a\u00020\u00042\u0006\u0010\n\u001a\u00020\u000bH&¨\u0006\r"}, d2 = {"Lokhttp3/internal/http2/Http2Connection$Listener;", "", "()V", "onSettings", "", SentryOkHttpEventListener.CONNECTION_EVENT, "Lokhttp3/internal/http2/Http2Connection;", "settings", "Lokhttp3/internal/http2/Settings;", "onStream", "stream", "Lokhttp3/internal/http2/Http2Stream;", "Companion", "okhttp"}, k = 1, mv = {1, 4, 0})
/* loaded from: classes3.dex */
public static abstract class Listener {
public static final Listener REFUSE_INCOMING_STREAMS = new Listener() { // from class: okhttp3.internal.http2.Http2Connection$Listener$Companion$REFUSE_INCOMING_STREAMS$1
@Override // okhttp3.internal.http2.Http2Connection.Listener
public void onStream(Http2Stream stream) throws IOException {
Intrinsics.checkNotNullParameter(stream, "stream");
stream.close(ErrorCode.REFUSED_STREAM, null);
}
};
public void onSettings(Http2Connection r1, Settings settings) {
Intrinsics.checkNotNullParameter(r1, "connection");
Intrinsics.checkNotNullParameter(settings, "settings");
}
public abstract void onStream(Http2Stream stream) throws IOException;
}
/* renamed from: getClient$okhttp, reason: from getter */
public final boolean getClient() {
return this.client;
}
/* renamed from: getConnectionName$okhttp, reason: from getter */
public final String getConnectionName() {
return this.connectionName;
}
/* renamed from: getLastGoodStreamId$okhttp, reason: from getter */
public final int getLastGoodStreamId() {
return this.lastGoodStreamId;
}
/* renamed from: getListener$okhttp, reason: from getter */
public final Listener getListener() {
return this.listener;
}
/* renamed from: getNextStreamId$okhttp, reason: from getter */
public final int getNextStreamId() {
return this.nextStreamId;
}
public final Settings getOkHttpSettings() {
return this.okHttpSettings;
}
public final Settings getPeerSettings() {
return this.peerSettings;
}
public final long getReadBytesAcknowledged() {
return this.readBytesAcknowledged;
}
public final long getReadBytesTotal() {
return this.readBytesTotal;
}
public final ReaderRunnable getReaderRunnable() {
return this.readerRunnable;
}
/* renamed from: getSocket$okhttp, reason: from getter */
public final Socket getSocket() {
return this.socket;
}
public final Map<Integer, Http2Stream> getStreams$okhttp() {
return this.streams;
}
public final long getWriteBytesMaximum() {
return this.writeBytesMaximum;
}
public final long getWriteBytesTotal() {
return this.writeBytesTotal;
}
public final Http2Writer getWriter() {
return this.writer;
}
public final boolean pushedStream$okhttp(int streamId) {
return streamId != 0 && (streamId & 1) == 0;
}
public final void setLastGoodStreamId$okhttp(int i) {
this.lastGoodStreamId = i;
}
public final void setNextStreamId$okhttp(int i) {
this.nextStreamId = i;
}
public final void setPeerSettings(Settings settings) {
Intrinsics.checkNotNullParameter(settings, "<set-?>");
this.peerSettings = settings;
}
public final void start() throws IOException {
start$default(this, false, null, 3, null);
}
public final void start(boolean z) throws IOException {
start$default(this, z, null, 2, null);
}
public Http2Connection(Builder builder) {
Intrinsics.checkNotNullParameter(builder, "builder");
boolean client = builder.getClient();
this.client = client;
this.listener = builder.getListener();
this.streams = new LinkedHashMap();
String connectionName$okhttp = builder.getConnectionName$okhttp();
this.connectionName = connectionName$okhttp;
this.nextStreamId = builder.getClient() ? 3 : 2;
TaskRunner taskRunner = builder.getTaskRunner();
this.taskRunner = taskRunner;
TaskQueue newQueue = taskRunner.newQueue();
this.writerQueue = newQueue;
this.pushQueue = taskRunner.newQueue();
this.settingsListenerQueue = taskRunner.newQueue();
this.pushObserver = builder.getPushObserver();
Settings settings = new Settings();
if (builder.getClient()) {
settings.set(7, 16777216);
}
Unit unit = Unit.INSTANCE;
this.okHttpSettings = settings;
this.peerSettings = DEFAULT_SETTINGS;
this.writeBytesMaximum = r2.getInitialWindowSize();
this.socket = builder.getSocket$okhttp();
this.writer = new Http2Writer(builder.getSink$okhttp(), client);
this.readerRunnable = new ReaderRunnable(this, new Http2Reader(builder.getSource$okhttp(), client));
this.currentPushRequests = new LinkedHashSet();
if (builder.getPingIntervalMillis() != 0) {
final long nanos = TimeUnit.MILLISECONDS.toNanos(builder.getPingIntervalMillis());
final String str = connectionName$okhttp + " ping";
newQueue.schedule(new Task(str) { // from class: okhttp3.internal.http2.Http2Connection$$special$$inlined$schedule$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
long j;
long j2;
boolean z;
synchronized (this) {
long j3 = this.intervalPongsReceived;
j = this.intervalPingsSent;
if (j3 < j) {
z = true;
} else {
Http2Connection http2Connection = this;
j2 = http2Connection.intervalPingsSent;
http2Connection.intervalPingsSent = j2 + 1;
z = false;
}
}
if (z) {
this.failConnection(null);
return -1L;
}
this.writePing(false, 1, 0);
return nanos;
}
}, nanos);
}
}
public final synchronized int openStreamCount() {
return this.streams.size();
}
public final synchronized Http2Stream getStream(int id) {
return this.streams.get(Integer.valueOf(id));
}
public final synchronized Http2Stream removeStream$okhttp(int streamId) {
Http2Stream remove;
remove = this.streams.remove(Integer.valueOf(streamId));
notifyAll();
return remove;
}
public final synchronized void updateConnectionFlowControl$okhttp(long read) {
long j = this.readBytesTotal + read;
this.readBytesTotal = j;
long j2 = j - this.readBytesAcknowledged;
if (j2 >= this.okHttpSettings.getInitialWindowSize() / 2) {
writeWindowUpdateLater$okhttp(0, j2);
this.readBytesAcknowledged += j2;
}
}
public final Http2Stream pushStream(int associatedStreamId, List<Header> requestHeaders, boolean out) throws IOException {
Intrinsics.checkNotNullParameter(requestHeaders, "requestHeaders");
if (!(!this.client)) {
throw new IllegalStateException("Client cannot push requests.".toString());
}
return newStream(associatedStreamId, requestHeaders, out);
}
public final Http2Stream newStream(List<Header> requestHeaders, boolean out) throws IOException {
Intrinsics.checkNotNullParameter(requestHeaders, "requestHeaders");
return newStream(0, requestHeaders, out);
}
/* JADX WARN: Removed duplicated region for block: B:21:0x0048 A[Catch: all -> 0x0087, TryCatch #0 {, blocks: (B:6:0x0007, B:8:0x000e, B:9:0x0013, B:11:0x0017, B:13:0x002a, B:15:0x0032, B:19:0x0042, B:21:0x0048, B:22:0x0051, B:38:0x007f, B:39:0x0086), top: B:5:0x0007, outer: #1 }] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private final okhttp3.internal.http2.Http2Stream newStream(int r11, java.util.List<okhttp3.internal.http2.Header> r12, boolean r13) throws java.io.IOException {
/*
r10 = this;
r6 = r13 ^ 1
r4 = 0
okhttp3.internal.http2.Http2Writer r7 = r10.writer
monitor-enter(r7)
monitor-enter(r10) // Catch: java.lang.Throwable -> L8a
int r0 = r10.nextStreamId // Catch: java.lang.Throwable -> L87
r1 = 1073741823(0x3fffffff, float:1.9999999)
if (r0 <= r1) goto L13
okhttp3.internal.http2.ErrorCode r0 = okhttp3.internal.http2.ErrorCode.REFUSED_STREAM // Catch: java.lang.Throwable -> L87
r10.shutdown(r0) // Catch: java.lang.Throwable -> L87
L13:
boolean r0 = r10.isShutdown // Catch: java.lang.Throwable -> L87
if (r0 != 0) goto L7f
int r8 = r10.nextStreamId // Catch: java.lang.Throwable -> L87
int r0 = r8 + 2
r10.nextStreamId = r0 // Catch: java.lang.Throwable -> L87
okhttp3.internal.http2.Http2Stream r9 = new okhttp3.internal.http2.Http2Stream // Catch: java.lang.Throwable -> L87
r5 = 0
r0 = r9
r1 = r8
r2 = r10
r3 = r6
r0.<init>(r1, r2, r3, r4, r5) // Catch: java.lang.Throwable -> L87
r0 = 1
if (r13 == 0) goto L41
long r1 = r10.writeBytesTotal // Catch: java.lang.Throwable -> L87
long r3 = r10.writeBytesMaximum // Catch: java.lang.Throwable -> L87
int r13 = (r1 > r3 ? 1 : (r1 == r3 ? 0 : -1))
if (r13 >= 0) goto L41
long r1 = r9.getWriteBytesTotal() // Catch: java.lang.Throwable -> L87
long r3 = r9.getWriteBytesMaximum() // Catch: java.lang.Throwable -> L87
int r13 = (r1 > r3 ? 1 : (r1 == r3 ? 0 : -1))
if (r13 < 0) goto L3f
goto L41
L3f:
r13 = 0
goto L42
L41:
r13 = r0
L42:
boolean r1 = r9.isOpen() // Catch: java.lang.Throwable -> L87
if (r1 == 0) goto L51
java.util.Map<java.lang.Integer, okhttp3.internal.http2.Http2Stream> r1 = r10.streams // Catch: java.lang.Throwable -> L87
java.lang.Integer r2 = java.lang.Integer.valueOf(r8) // Catch: java.lang.Throwable -> L87
r1.put(r2, r9) // Catch: java.lang.Throwable -> L87
L51:
kotlin.Unit r1 = kotlin.Unit.INSTANCE // Catch: java.lang.Throwable -> L87
monitor-exit(r10) // Catch: java.lang.Throwable -> L8a
if (r11 != 0) goto L5c
okhttp3.internal.http2.Http2Writer r11 = r10.writer // Catch: java.lang.Throwable -> L8a
r11.headers(r6, r8, r12) // Catch: java.lang.Throwable -> L8a
goto L66
L5c:
boolean r1 = r10.client // Catch: java.lang.Throwable -> L8a
r0 = r0 ^ r1
if (r0 == 0) goto L71
okhttp3.internal.http2.Http2Writer r0 = r10.writer // Catch: java.lang.Throwable -> L8a
r0.pushPromise(r11, r8, r12) // Catch: java.lang.Throwable -> L8a
L66:
kotlin.Unit r11 = kotlin.Unit.INSTANCE // Catch: java.lang.Throwable -> L8a
monitor-exit(r7)
if (r13 == 0) goto L70
okhttp3.internal.http2.Http2Writer r10 = r10.writer
r10.flush()
L70:
return r9
L71:
java.lang.String r10 = "client streams shouldn't have associated stream IDs"
java.lang.IllegalArgumentException r11 = new java.lang.IllegalArgumentException // Catch: java.lang.Throwable -> L8a
java.lang.String r10 = r10.toString() // Catch: java.lang.Throwable -> L8a
r11.<init>(r10) // Catch: java.lang.Throwable -> L8a
java.lang.Throwable r11 = (java.lang.Throwable) r11 // Catch: java.lang.Throwable -> L8a
throw r11 // Catch: java.lang.Throwable -> L8a
L7f:
okhttp3.internal.http2.ConnectionShutdownException r11 = new okhttp3.internal.http2.ConnectionShutdownException // Catch: java.lang.Throwable -> L87
r11.<init>() // Catch: java.lang.Throwable -> L87
java.lang.Throwable r11 = (java.lang.Throwable) r11 // Catch: java.lang.Throwable -> L87
throw r11 // Catch: java.lang.Throwable -> L87
L87:
r11 = move-exception
monitor-exit(r10) // Catch: java.lang.Throwable -> L8a
throw r11 // Catch: java.lang.Throwable -> L8a
L8a:
r10 = move-exception
monitor-exit(r7)
throw r10
*/
throw new UnsupportedOperationException("Method not decompiled: okhttp3.internal.http2.Http2Connection.newStream(int, java.util.List, boolean):okhttp3.internal.http2.Http2Stream");
}
public final void writeHeaders$okhttp(int streamId, boolean outFinished, List<Header> alternating) throws IOException {
Intrinsics.checkNotNullParameter(alternating, "alternating");
this.writer.headers(outFinished, streamId, alternating);
}
/* JADX WARN: Code restructure failed: missing block: B:17:0x0036, code lost:
throw new java.io.IOException("stream closed");
*/
/* JADX WARN: Code restructure failed: missing block: B:21:0x0038, code lost:
r2 = java.lang.Math.min((int) java.lang.Math.min(r12, r6 - r4), r8.writer.getMaxFrameSize());
r6 = r2;
r8.writeBytesTotal += r6;
r4 = kotlin.Unit.INSTANCE;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final void writeData(int r9, boolean r10, okio.Buffer r11, long r12) throws java.io.IOException {
/*
r8 = this;
r0 = 0
int r2 = (r12 > r0 ? 1 : (r12 == r0 ? 0 : -1))
r3 = 0
if (r2 != 0) goto Ld
okhttp3.internal.http2.Http2Writer r8 = r8.writer
r8.data(r10, r9, r11, r3)
return
Ld:
int r2 = (r12 > r0 ? 1 : (r12 == r0 ? 0 : -1))
if (r2 <= 0) goto L73
monitor-enter(r8)
L12:
long r4 = r8.writeBytesTotal // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
long r6 = r8.writeBytesMaximum // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
int r2 = (r4 > r6 ? 1 : (r4 == r6 ? 0 : -1))
if (r2 < 0) goto L37
java.util.Map<java.lang.Integer, okhttp3.internal.http2.Http2Stream> r2 = r8.streams // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
java.lang.Integer r4 = java.lang.Integer.valueOf(r9) // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
boolean r2 = r2.containsKey(r4) // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
if (r2 == 0) goto L2d
r2 = r8
java.lang.Object r2 = (java.lang.Object) r2 // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
r2.wait() // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
goto L12
L2d:
java.io.IOException r9 = new java.io.IOException // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
java.lang.String r10 = "stream closed"
r9.<init>(r10) // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
java.lang.Throwable r9 = (java.lang.Throwable) r9 // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
throw r9 // Catch: java.lang.Throwable -> L60 java.lang.InterruptedException -> L62
L37:
long r6 = r6 - r4
long r4 = java.lang.Math.min(r12, r6) // Catch: java.lang.Throwable -> L60
int r2 = (int) r4 // Catch: java.lang.Throwable -> L60
okhttp3.internal.http2.Http2Writer r4 = r8.writer // Catch: java.lang.Throwable -> L60
int r4 = r4.getMaxFrameSize() // Catch: java.lang.Throwable -> L60
int r2 = java.lang.Math.min(r2, r4) // Catch: java.lang.Throwable -> L60
long r4 = r8.writeBytesTotal // Catch: java.lang.Throwable -> L60
long r6 = (long) r2 // Catch: java.lang.Throwable -> L60
long r4 = r4 + r6
r8.writeBytesTotal = r4 // Catch: java.lang.Throwable -> L60
kotlin.Unit r4 = kotlin.Unit.INSTANCE // Catch: java.lang.Throwable -> L60
monitor-exit(r8)
long r12 = r12 - r6
okhttp3.internal.http2.Http2Writer r4 = r8.writer
if (r10 == 0) goto L5b
int r5 = (r12 > r0 ? 1 : (r12 == r0 ? 0 : -1))
if (r5 != 0) goto L5b
r5 = 1
goto L5c
L5b:
r5 = r3
L5c:
r4.data(r5, r9, r11, r2)
goto Ld
L60:
r9 = move-exception
goto L71
L62:
java.lang.Thread r9 = java.lang.Thread.currentThread() // Catch: java.lang.Throwable -> L60
r9.interrupt() // Catch: java.lang.Throwable -> L60
java.io.InterruptedIOException r9 = new java.io.InterruptedIOException // Catch: java.lang.Throwable -> L60
r9.<init>() // Catch: java.lang.Throwable -> L60
java.lang.Throwable r9 = (java.lang.Throwable) r9 // Catch: java.lang.Throwable -> L60
throw r9 // Catch: java.lang.Throwable -> L60
L71:
monitor-exit(r8)
throw r9
L73:
return
*/
throw new UnsupportedOperationException("Method not decompiled: okhttp3.internal.http2.Http2Connection.writeData(int, boolean, okio.Buffer, long):void");
}
public final void writeSynResetLater$okhttp(final int streamId, final ErrorCode errorCode) {
Intrinsics.checkNotNullParameter(errorCode, "errorCode");
TaskQueue taskQueue = this.writerQueue;
final String str = this.connectionName + '[' + streamId + "] writeSynReset";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$writeSynResetLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
try {
this.writeSynReset$okhttp(streamId, errorCode);
return -1L;
} catch (IOException e) {
this.failConnection(e);
return -1L;
}
}
}, 0L);
}
public final void writeSynReset$okhttp(int streamId, ErrorCode statusCode) throws IOException {
Intrinsics.checkNotNullParameter(statusCode, "statusCode");
this.writer.rstStream(streamId, statusCode);
}
public final void writeWindowUpdateLater$okhttp(final int streamId, final long unacknowledgedBytesRead) {
TaskQueue taskQueue = this.writerQueue;
final String str = this.connectionName + '[' + streamId + "] windowUpdate";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$writeWindowUpdateLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
try {
this.getWriter().windowUpdate(streamId, unacknowledgedBytesRead);
return -1L;
} catch (IOException e) {
this.failConnection(e);
return -1L;
}
}
}, 0L);
}
public final void writePing(boolean reply, int payload1, int payload2) {
try {
this.writer.ping(reply, payload1, payload2);
} catch (IOException e) {
failConnection(e);
}
}
public final void writePingAndAwaitPong() throws InterruptedException {
writePing();
awaitPong();
}
public final void writePing() throws InterruptedException {
synchronized (this) {
this.awaitPingsSent++;
}
writePing(false, 3, 1330343787);
}
public final void flush() throws IOException {
this.writer.flush();
}
public final void shutdown(ErrorCode statusCode) throws IOException {
Intrinsics.checkNotNullParameter(statusCode, "statusCode");
synchronized (this.writer) {
synchronized (this) {
if (this.isShutdown) {
return;
}
this.isShutdown = true;
int i = this.lastGoodStreamId;
Unit unit = Unit.INSTANCE;
this.writer.goAway(i, statusCode, Util.EMPTY_BYTE_ARRAY);
Unit unit2 = Unit.INSTANCE;
}
}
}
@Override // java.io.Closeable, java.lang.AutoCloseable
public void close() {
close$okhttp(ErrorCode.NO_ERROR, ErrorCode.CANCEL, null);
}
public final void failConnection(IOException e) {
close$okhttp(ErrorCode.PROTOCOL_ERROR, ErrorCode.PROTOCOL_ERROR, e);
}
public static /* synthetic */ void start$default(Http2Connection http2Connection, boolean z, TaskRunner taskRunner, int i, Object obj) throws IOException {
if ((i & 1) != 0) {
z = true;
}
if ((i & 2) != 0) {
taskRunner = TaskRunner.INSTANCE;
}
http2Connection.start(z, taskRunner);
}
public final void start(boolean sendConnectionPreface, TaskRunner taskRunner) throws IOException {
Intrinsics.checkNotNullParameter(taskRunner, "taskRunner");
if (sendConnectionPreface) {
this.writer.connectionPreface();
this.writer.settings(this.okHttpSettings);
if (this.okHttpSettings.getInitialWindowSize() != 65535) {
this.writer.windowUpdate(0, r7 - 65535);
}
}
TaskQueue newQueue = taskRunner.newQueue();
String str = this.connectionName;
newQueue.schedule(new TaskQueue$execute$1(this.readerRunnable, str, true, str, true), 0L);
}
public final void setSettings(Settings settings) throws IOException {
Intrinsics.checkNotNullParameter(settings, "settings");
synchronized (this.writer) {
synchronized (this) {
if (this.isShutdown) {
throw new ConnectionShutdownException();
}
this.okHttpSettings.merge(settings);
Unit unit = Unit.INSTANCE;
}
this.writer.settings(settings);
Unit unit2 = Unit.INSTANCE;
}
}
public final synchronized boolean isHealthy(long nowNs) {
if (this.isShutdown) {
return false;
}
if (this.degradedPongsReceived < this.degradedPingsSent) {
if (nowNs >= this.degradedPongDeadlineNs) {
return false;
}
}
return true;
}
public final void sendDegradedPingLater$okhttp() {
synchronized (this) {
long j = this.degradedPongsReceived;
long j2 = this.degradedPingsSent;
if (j < j2) {
return;
}
this.degradedPingsSent = j2 + 1;
this.degradedPongDeadlineNs = System.nanoTime() + 1000000000;
Unit unit = Unit.INSTANCE;
TaskQueue taskQueue = this.writerQueue;
final String str = this.connectionName + " ping";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$sendDegradedPingLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
this.writePing(false, 2, 0);
return -1L;
}
}, 0L);
}
}
/* compiled from: Http2Connection.kt */
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000X\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\u000e\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\b\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0002\u0018\u00002\u00020\u0001B\u0015\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\u0006\u00107\u001a\u000208J\u000e\u0010\u0011\u001a\u00020\u00002\u0006\u0010\u0011\u001a\u00020\u0012J\u000e\u0010\u0017\u001a\u00020\u00002\u0006\u0010\u0017\u001a\u00020\u0018J\u000e\u0010\u001d\u001a\u00020\u00002\u0006\u0010\u001d\u001a\u00020\u001eJ.\u0010)\u001a\u00020\u00002\u0006\u0010)\u001a\u00020*2\b\b\u0002\u00109\u001a\u00020\f2\b\b\u0002\u0010/\u001a\u0002002\b\b\u0002\u0010#\u001a\u00020$H\u0007R\u001a\u0010\u0002\u001a\u00020\u0003X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0007\u0010\b\"\u0004\b\t\u0010\nR\u001a\u0010\u000b\u001a\u00020\fX\u0080.¢\u0006\u000e\n\u0000\u001a\u0004\b\r\u0010\u000e\"\u0004\b\u000f\u0010\u0010R\u001a\u0010\u0011\u001a\u00020\u0012X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0013\u0010\u0014\"\u0004\b\u0015\u0010\u0016R\u001a\u0010\u0017\u001a\u00020\u0018X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0019\u0010\u001a\"\u0004\b\u001b\u0010\u001cR\u001a\u0010\u001d\u001a\u00020\u001eX\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u001f\u0010 \"\u0004\b!\u0010\"R\u001a\u0010#\u001a\u00020$X\u0080.¢\u0006\u000e\n\u0000\u001a\u0004\b%\u0010&\"\u0004\b'\u0010(R\u001a\u0010)\u001a\u00020*X\u0080.¢\u0006\u000e\n\u0000\u001a\u0004\b+\u0010,\"\u0004\b-\u0010.R\u001a\u0010/\u001a\u000200X\u0080.¢\u0006\u000e\n\u0000\u001a\u0004\b1\u00102\"\u0004\b3\u00104R\u0014\u0010\u0004\u001a\u00020\u0005X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b5\u00106¨\u0006:"}, d2 = {"Lokhttp3/internal/http2/Http2Connection$Builder;", "", "client", "", "taskRunner", "Lokhttp3/internal/concurrent/TaskRunner;", "(ZLokhttp3/internal/concurrent/TaskRunner;)V", "getClient$okhttp", "()Z", "setClient$okhttp", "(Z)V", "connectionName", "", "getConnectionName$okhttp", "()Ljava/lang/String;", "setConnectionName$okhttp", "(Ljava/lang/String;)V", "listener", "Lokhttp3/internal/http2/Http2Connection$Listener;", "getListener$okhttp", "()Lokhttp3/internal/http2/Http2Connection$Listener;", "setListener$okhttp", "(Lokhttp3/internal/http2/Http2Connection$Listener;)V", "pingIntervalMillis", "", "getPingIntervalMillis$okhttp", "()I", "setPingIntervalMillis$okhttp", "(I)V", "pushObserver", "Lokhttp3/internal/http2/PushObserver;", "getPushObserver$okhttp", "()Lokhttp3/internal/http2/PushObserver;", "setPushObserver$okhttp", "(Lokhttp3/internal/http2/PushObserver;)V", "sink", "Lokio/BufferedSink;", "getSink$okhttp", "()Lokio/BufferedSink;", "setSink$okhttp", "(Lokio/BufferedSink;)V", "socket", "Ljava/net/Socket;", "getSocket$okhttp", "()Ljava/net/Socket;", "setSocket$okhttp", "(Ljava/net/Socket;)V", TransactionInfo.JsonKeys.SOURCE, "Lokio/BufferedSource;", "getSource$okhttp", "()Lokio/BufferedSource;", "setSource$okhttp", "(Lokio/BufferedSource;)V", "getTaskRunner$okhttp", "()Lokhttp3/internal/concurrent/TaskRunner;", OperatingSystem.JsonKeys.BUILD, "Lokhttp3/internal/http2/Http2Connection;", "peerName", "okhttp"}, k = 1, mv = {1, 4, 0})
/* loaded from: classes3.dex */
public static final class Builder {
private boolean client;
public String connectionName;
private Listener listener;
private int pingIntervalMillis;
private PushObserver pushObserver;
public BufferedSink sink;
public Socket socket;
public BufferedSource source;
private final TaskRunner taskRunner;
/* renamed from: getClient$okhttp, reason: from getter */
public final boolean getClient() {
return this.client;
}
/* renamed from: getListener$okhttp, reason: from getter */
public final Listener getListener() {
return this.listener;
}
/* renamed from: getPingIntervalMillis$okhttp, reason: from getter */
public final int getPingIntervalMillis() {
return this.pingIntervalMillis;
}
/* renamed from: getPushObserver$okhttp, reason: from getter */
public final PushObserver getPushObserver() {
return this.pushObserver;
}
/* renamed from: getTaskRunner$okhttp, reason: from getter */
public final TaskRunner getTaskRunner() {
return this.taskRunner;
}
public final void setClient$okhttp(boolean z) {
this.client = z;
}
public final void setConnectionName$okhttp(String str) {
Intrinsics.checkNotNullParameter(str, "<set-?>");
this.connectionName = str;
}
public final void setListener$okhttp(Listener listener) {
Intrinsics.checkNotNullParameter(listener, "<set-?>");
this.listener = listener;
}
public final void setPingIntervalMillis$okhttp(int i) {
this.pingIntervalMillis = i;
}
public final void setPushObserver$okhttp(PushObserver pushObserver) {
Intrinsics.checkNotNullParameter(pushObserver, "<set-?>");
this.pushObserver = pushObserver;
}
public final void setSink$okhttp(BufferedSink bufferedSink) {
Intrinsics.checkNotNullParameter(bufferedSink, "<set-?>");
this.sink = bufferedSink;
}
public final void setSocket$okhttp(Socket socket) {
Intrinsics.checkNotNullParameter(socket, "<set-?>");
this.socket = socket;
}
public final void setSource$okhttp(BufferedSource bufferedSource) {
Intrinsics.checkNotNullParameter(bufferedSource, "<set-?>");
this.source = bufferedSource;
}
public final Builder socket(Socket socket) throws IOException {
return socket$default(this, socket, null, null, null, 14, null);
}
public final Builder socket(Socket socket, String str) throws IOException {
return socket$default(this, socket, str, null, null, 12, null);
}
public final Builder socket(Socket socket, String str, BufferedSource bufferedSource) throws IOException {
return socket$default(this, socket, str, bufferedSource, null, 8, null);
}
public Builder(boolean z, TaskRunner taskRunner) {
Intrinsics.checkNotNullParameter(taskRunner, "taskRunner");
this.client = z;
this.taskRunner = taskRunner;
this.listener = Listener.REFUSE_INCOMING_STREAMS;
this.pushObserver = PushObserver.CANCEL;
}
public final Socket getSocket$okhttp() {
Socket socket = this.socket;
if (socket == null) {
Intrinsics.throwUninitializedPropertyAccessException("socket");
}
return socket;
}
public final String getConnectionName$okhttp() {
String str = this.connectionName;
if (str == null) {
Intrinsics.throwUninitializedPropertyAccessException("connectionName");
}
return str;
}
public final BufferedSource getSource$okhttp() {
BufferedSource bufferedSource = this.source;
if (bufferedSource == null) {
Intrinsics.throwUninitializedPropertyAccessException(TransactionInfo.JsonKeys.SOURCE);
}
return bufferedSource;
}
public final BufferedSink getSink$okhttp() {
BufferedSink bufferedSink = this.sink;
if (bufferedSink == null) {
Intrinsics.throwUninitializedPropertyAccessException("sink");
}
return bufferedSink;
}
public static /* synthetic */ Builder socket$default(Builder builder, Socket socket, String str, BufferedSource bufferedSource, BufferedSink bufferedSink, int i, Object obj) throws IOException {
if ((i & 2) != 0) {
str = Util.peerName(socket);
}
if ((i & 4) != 0) {
bufferedSource = Okio.buffer(Okio.source(socket));
}
if ((i & 8) != 0) {
bufferedSink = Okio.buffer(Okio.sink(socket));
}
return builder.socket(socket, str, bufferedSource, bufferedSink);
}
public final Builder socket(Socket socket, String peerName, BufferedSource r4, BufferedSink sink) throws IOException {
String str;
Intrinsics.checkNotNullParameter(socket, "socket");
Intrinsics.checkNotNullParameter(peerName, "peerName");
Intrinsics.checkNotNullParameter(r4, "source");
Intrinsics.checkNotNullParameter(sink, "sink");
this.socket = socket;
if (this.client) {
str = Util.okHttpName + ' ' + peerName;
} else {
str = "MockWebServer " + peerName;
}
this.connectionName = str;
this.source = r4;
this.sink = sink;
return this;
}
public final Builder listener(Listener listener) {
Intrinsics.checkNotNullParameter(listener, "listener");
this.listener = listener;
return this;
}
public final Builder pushObserver(PushObserver pushObserver) {
Intrinsics.checkNotNullParameter(pushObserver, "pushObserver");
this.pushObserver = pushObserver;
return this;
}
public final Builder pingIntervalMillis(int pingIntervalMillis) {
this.pingIntervalMillis = pingIntervalMillis;
return this;
}
public final Http2Connection build() {
return new Http2Connection(this);
}
}
/* compiled from: Http2Connection.kt */
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000`\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\t\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0010\b\u0086\u0004\u0018\u00002\u00020\u00012\b\u0012\u0004\u0012\u00020\u00030\u0002B\u000f\b\u0000\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\b\u0010\t\u001a\u00020\u0003H\u0016J8\u0010\n\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\f2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u00102\u0006\u0010\u0011\u001a\u00020\u000e2\u0006\u0010\u0012\u001a\u00020\f2\u0006\u0010\u0013\u001a\u00020\u0014H\u0016J\u0016\u0010\u0015\u001a\u00020\u00032\u0006\u0010\u0016\u001a\u00020\u00172\u0006\u0010\u0018\u001a\u00020\u0019J(\u0010\u001a\u001a\u00020\u00032\u0006\u0010\u001b\u001a\u00020\u00172\u0006\u0010\u000b\u001a\u00020\f2\u0006\u0010\u001c\u001a\u00020\u001d2\u0006\u0010\u001e\u001a\u00020\fH\u0016J \u0010\u001f\u001a\u00020\u00032\u0006\u0010 \u001a\u00020\f2\u0006\u0010!\u001a\u00020\"2\u0006\u0010#\u001a\u00020\u0010H\u0016J.\u0010$\u001a\u00020\u00032\u0006\u0010\u001b\u001a\u00020\u00172\u0006\u0010\u000b\u001a\u00020\f2\u0006\u0010%\u001a\u00020\f2\f\u0010&\u001a\b\u0012\u0004\u0012\u00020(0'H\u0016J\t\u0010)\u001a\u00020\u0003H\u0096\u0002J \u0010*\u001a\u00020\u00032\u0006\u0010+\u001a\u00020\u00172\u0006\u0010,\u001a\u00020\f2\u0006\u0010-\u001a\u00020\fH\u0016J(\u0010.\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\f2\u0006\u0010/\u001a\u00020\f2\u0006\u00100\u001a\u00020\f2\u0006\u00101\u001a\u00020\u0017H\u0016J&\u00102\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\f2\u0006\u00103\u001a\u00020\f2\f\u00104\u001a\b\u0012\u0004\u0012\u00020(0'H\u0016J\u0018\u00105\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\f2\u0006\u0010!\u001a\u00020\"H\u0016J\u0018\u0010\u0018\u001a\u00020\u00032\u0006\u0010\u0016\u001a\u00020\u00172\u0006\u0010\u0018\u001a\u00020\u0019H\u0016J\u0018\u00106\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\f2\u0006\u00107\u001a\u00020\u0014H\u0016R\u0014\u0010\u0004\u001a\u00020\u0005X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u0007\u0010\\u00068"}, d2 = {"Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;", "Lokhttp3/internal/http2/Http2Reader$Handler;", "Lkotlin/Function0;", "", "reader", "Lokhttp3/internal/http2/Http2Reader;", "(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Http2Reader;)V", "getReader$okhttp", "()Lokhttp3/internal/http2/Http2Reader;", "ackSettings", "alternateService", "streamId", "", "origin", "", "protocol", "Lokio/ByteString;", "host", "port", "maxAge", "", "applyAndAckSettings", "clearPrevious", "", "settings", "Lokhttp3/internal/http2/Settings;", "data", "inFinished", TransactionInfo.JsonKeys.SOURCE, "Lokio/BufferedSource;", SentryEnvelopeItemHeader.JsonKeys.LENGTH, "goAway", "lastGoodStreamId", "errorCode", "Lokhttp3/internal/http2/ErrorCode;", "debugData", "headers", "associatedStreamId", "headerBlock", "", "Lokhttp3/internal/http2/Header;", "invoke", "ping", "ack", "payload1", "payload2", SentryThread.JsonKeys.PRIORITY, "streamDependency", "weight", "exclusive", "pushPromise", "promisedStreamId", "requestHeaders", "rstStream", "windowUpdate", "windowSizeIncrement", "okhttp"}, k = 1, mv = {1, 4, 0})
/* loaded from: classes3.dex */
public final class ReaderRunnable implements Http2Reader.Handler, Function0<Unit> {
private final Http2Reader reader;
final /* synthetic */ Http2Connection this$0;
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void ackSettings() {
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void alternateService(int streamId, String origin, ByteString protocol, String host, int port, long maxAge) {
Intrinsics.checkNotNullParameter(origin, "origin");
Intrinsics.checkNotNullParameter(protocol, "protocol");
Intrinsics.checkNotNullParameter(host, "host");
}
/* renamed from: getReader$okhttp, reason: from getter */
public final Http2Reader getReader() {
return this.reader;
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void priority(int i, int i2, int i3, boolean z) {
}
public ReaderRunnable(Http2Connection http2Connection, Http2Reader reader) {
Intrinsics.checkNotNullParameter(reader, "reader");
this.this$0 = http2Connection;
this.reader = reader;
}
@Override // kotlin.jvm.functions.Function0
public /* bridge */ /* synthetic */ Unit invoke() {
invoke2();
return Unit.INSTANCE;
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r6v5, types: [java.io.Closeable] */
/* renamed from: invoke */
public void invoke2() {
ErrorCode errorCode = ErrorCode.INTERNAL_ERROR;
ErrorCode errorCode2 = ErrorCode.INTERNAL_ERROR;
IOException e = null;
try {
try {
this.reader.readConnectionPreface(this);
do {
} while (this.reader.nextFrame(false, this));
errorCode = ErrorCode.NO_ERROR;
errorCode2 = ErrorCode.CANCEL;
} catch (IOException e2) {
e = e2;
errorCode = ErrorCode.PROTOCOL_ERROR;
errorCode2 = ErrorCode.PROTOCOL_ERROR;
}
} finally {
this.this$0.close$okhttp(errorCode, errorCode2, e);
Util.closeQuietly(this.reader);
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void data(boolean inFinished, int streamId, BufferedSource r4, int r5) throws IOException {
Intrinsics.checkNotNullParameter(r4, "source");
if (this.this$0.pushedStream$okhttp(streamId)) {
this.this$0.pushDataLater$okhttp(streamId, r4, r5, inFinished);
return;
}
Http2Stream stream = this.this$0.getStream(streamId);
if (stream == null) {
this.this$0.writeSynResetLater$okhttp(streamId, ErrorCode.PROTOCOL_ERROR);
long j = r5;
this.this$0.updateConnectionFlowControl$okhttp(j);
r4.skip(j);
return;
}
stream.receiveData(r4, r5);
if (inFinished) {
stream.receiveHeaders(Util.EMPTY_HEADERS, true);
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void headers(final boolean inFinished, final int streamId, int associatedStreamId, final List<Header> headerBlock) {
Intrinsics.checkNotNullParameter(headerBlock, "headerBlock");
if (this.this$0.pushedStream$okhttp(streamId)) {
this.this$0.pushHeadersLater$okhttp(streamId, headerBlock, inFinished);
return;
}
synchronized (this.this$0) {
final Http2Stream stream = this.this$0.getStream(streamId);
if (stream == null) {
if (this.this$0.isShutdown) {
return;
}
if (streamId <= this.this$0.getLastGoodStreamId()) {
return;
}
if (streamId % 2 == this.this$0.getNextStreamId() % 2) {
return;
}
final Http2Stream http2Stream = new Http2Stream(streamId, this.this$0, false, inFinished, Util.toHeaders(headerBlock));
this.this$0.setLastGoodStreamId$okhttp(streamId);
this.this$0.getStreams$okhttp().put(Integer.valueOf(streamId), http2Stream);
TaskQueue newQueue = this.this$0.taskRunner.newQueue();
final String str = this.this$0.getConnectionName() + '[' + streamId + "] onStream";
final boolean z = true;
newQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$ReaderRunnable$headers$$inlined$synchronized$lambda$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
try {
this.this$0.getListener().onStream(http2Stream);
return -1L;
} catch (IOException e) {
Platform.INSTANCE.get().log("Http2Connection.Listener failure for " + this.this$0.getConnectionName(), 4, e);
try {
http2Stream.close(ErrorCode.PROTOCOL_ERROR, e);
return -1L;
} catch (IOException unused) {
return -1L;
}
}
}
}, 0L);
return;
}
Unit unit = Unit.INSTANCE;
stream.receiveHeaders(Util.toHeaders(headerBlock), inFinished);
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void rstStream(int streamId, ErrorCode errorCode) {
Intrinsics.checkNotNullParameter(errorCode, "errorCode");
if (this.this$0.pushedStream$okhttp(streamId)) {
this.this$0.pushResetLater$okhttp(streamId, errorCode);
return;
}
Http2Stream removeStream$okhttp = this.this$0.removeStream$okhttp(streamId);
if (removeStream$okhttp != null) {
removeStream$okhttp.receiveRstStream(errorCode);
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void settings(final boolean clearPrevious, final Settings settings) {
Intrinsics.checkNotNullParameter(settings, "settings");
TaskQueue taskQueue = this.this$0.writerQueue;
final String str = this.this$0.getConnectionName() + " applyAndAckSettings";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$ReaderRunnable$settings$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
this.applyAndAckSettings(clearPrevious, settings);
return -1L;
}
}, 0L);
}
/* JADX WARN: Can't wrap try/catch for region: R(8:(2:15|(10:17|18|19|20|21|22|23|24|25|26)(2:51|52))|20|21|22|23|24|25|26) */
/* JADX WARN: Code restructure failed: missing block: B:45:0x00df, code lost:
r0 = move-exception;
*/
/* JADX WARN: Code restructure failed: missing block: B:46:0x00e0, code lost:
r21.this$0.failConnection(r0);
*/
/* JADX WARN: Multi-variable type inference failed */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final void applyAndAckSettings(final boolean r22, final okhttp3.internal.http2.Settings r23) {
/*
Method dump skipped, instructions count: 278
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: okhttp3.internal.http2.Http2Connection.ReaderRunnable.applyAndAckSettings(boolean, okhttp3.internal.http2.Settings):void");
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void ping(boolean ack, final int payload1, final int payload2) {
if (!ack) {
TaskQueue taskQueue = this.this$0.writerQueue;
final String str = this.this$0.getConnectionName() + " ping";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$ReaderRunnable$ping$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
this.this$0.writePing(true, payload1, payload2);
return -1L;
}
}, 0L);
return;
}
synchronized (this.this$0) {
if (payload1 == 1) {
Http2Connection http2Connection = this.this$0;
long j = http2Connection.intervalPongsReceived;
http2Connection.intervalPongsReceived = 1 + j;
Long.valueOf(j);
} else if (payload1 == 2) {
Http2Connection http2Connection2 = this.this$0;
long j2 = http2Connection2.degradedPongsReceived;
http2Connection2.degradedPongsReceived = 1 + j2;
Long.valueOf(j2);
} else {
if (payload1 == 3) {
this.this$0.awaitPongsReceived++;
Http2Connection http2Connection3 = this.this$0;
if (http2Connection3 == null) {
throw new NullPointerException("null cannot be cast to non-null type java.lang.Object");
}
http2Connection3.notifyAll();
}
Unit unit = Unit.INSTANCE;
}
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void goAway(int lastGoodStreamId, ErrorCode errorCode, ByteString debugData) {
int i;
Http2Stream[] http2StreamArr;
Intrinsics.checkNotNullParameter(errorCode, "errorCode");
Intrinsics.checkNotNullParameter(debugData, "debugData");
debugData.size();
synchronized (this.this$0) {
Object[] array = this.this$0.getStreams$okhttp().values().toArray(new Http2Stream[0]);
if (array != null) {
http2StreamArr = (Http2Stream[]) array;
this.this$0.isShutdown = true;
Unit unit = Unit.INSTANCE;
} else {
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T>");
}
}
for (Http2Stream http2Stream : http2StreamArr) {
if (http2Stream.getId() > lastGoodStreamId && http2Stream.isLocallyInitiated()) {
http2Stream.receiveRstStream(ErrorCode.REFUSED_STREAM);
this.this$0.removeStream$okhttp(http2Stream.getId());
}
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void windowUpdate(int streamId, long windowSizeIncrement) {
if (streamId == 0) {
synchronized (this.this$0) {
Http2Connection http2Connection = this.this$0;
http2Connection.writeBytesMaximum = http2Connection.getWriteBytesMaximum() + windowSizeIncrement;
Http2Connection http2Connection2 = this.this$0;
if (http2Connection2 != null) {
http2Connection2.notifyAll();
Unit unit = Unit.INSTANCE;
} else {
throw new NullPointerException("null cannot be cast to non-null type java.lang.Object");
}
}
return;
}
Http2Stream stream = this.this$0.getStream(streamId);
if (stream != null) {
synchronized (stream) {
stream.addBytesToWriteWindow(windowSizeIncrement);
Unit unit2 = Unit.INSTANCE;
}
}
}
@Override // okhttp3.internal.http2.Http2Reader.Handler
public void pushPromise(int streamId, int promisedStreamId, List<Header> requestHeaders) {
Intrinsics.checkNotNullParameter(requestHeaders, "requestHeaders");
this.this$0.pushRequestLater$okhttp(promisedStreamId, requestHeaders);
}
}
public final void pushRequestLater$okhttp(final int streamId, final List<Header> requestHeaders) {
Intrinsics.checkNotNullParameter(requestHeaders, "requestHeaders");
synchronized (this) {
if (this.currentPushRequests.contains(Integer.valueOf(streamId))) {
writeSynResetLater$okhttp(streamId, ErrorCode.PROTOCOL_ERROR);
return;
}
this.currentPushRequests.add(Integer.valueOf(streamId));
TaskQueue taskQueue = this.pushQueue;
final String str = this.connectionName + '[' + streamId + "] onRequest";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$pushRequestLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
PushObserver pushObserver;
Set set;
pushObserver = this.pushObserver;
if (!pushObserver.onRequest(streamId, requestHeaders)) {
return -1L;
}
try {
this.getWriter().rstStream(streamId, ErrorCode.CANCEL);
synchronized (this) {
set = this.currentPushRequests;
set.remove(Integer.valueOf(streamId));
}
return -1L;
} catch (IOException unused) {
return -1L;
}
}
}, 0L);
}
}
public final void pushHeadersLater$okhttp(final int streamId, final List<Header> requestHeaders, final boolean inFinished) {
Intrinsics.checkNotNullParameter(requestHeaders, "requestHeaders");
TaskQueue taskQueue = this.pushQueue;
final String str = this.connectionName + '[' + streamId + "] onHeaders";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$pushHeadersLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
PushObserver pushObserver;
Set set;
pushObserver = this.pushObserver;
boolean onHeaders = pushObserver.onHeaders(streamId, requestHeaders, inFinished);
if (onHeaders) {
try {
this.getWriter().rstStream(streamId, ErrorCode.CANCEL);
} catch (IOException unused) {
return -1L;
}
}
if (!onHeaders && !inFinished) {
return -1L;
}
synchronized (this) {
set = this.currentPushRequests;
set.remove(Integer.valueOf(streamId));
}
return -1L;
}
}, 0L);
}
public final void pushDataLater$okhttp(final int streamId, BufferedSource r13, final int byteCount, final boolean inFinished) throws IOException {
Intrinsics.checkNotNullParameter(r13, "source");
final Buffer buffer = new Buffer();
long j = byteCount;
r13.require(j);
r13.read(buffer, j);
TaskQueue taskQueue = this.pushQueue;
final String str = this.connectionName + '[' + streamId + "] onData";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$pushDataLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
PushObserver pushObserver;
Set set;
try {
pushObserver = this.pushObserver;
boolean onData = pushObserver.onData(streamId, buffer, byteCount, inFinished);
if (onData) {
this.getWriter().rstStream(streamId, ErrorCode.CANCEL);
}
if (!onData && !inFinished) {
return -1L;
}
synchronized (this) {
set = this.currentPushRequests;
set.remove(Integer.valueOf(streamId));
}
return -1L;
} catch (IOException unused) {
return -1L;
}
}
}, 0L);
}
public final void pushResetLater$okhttp(final int streamId, final ErrorCode errorCode) {
Intrinsics.checkNotNullParameter(errorCode, "errorCode");
TaskQueue taskQueue = this.pushQueue;
final String str = this.connectionName + '[' + streamId + "] onReset";
final boolean z = true;
taskQueue.schedule(new Task(str, z) { // from class: okhttp3.internal.http2.Http2Connection$pushResetLater$$inlined$execute$1
@Override // okhttp3.internal.concurrent.Task
public long runOnce() {
PushObserver pushObserver;
Set set;
pushObserver = this.pushObserver;
pushObserver.onReset(streamId, errorCode);
synchronized (this) {
set = this.currentPushRequests;
set.remove(Integer.valueOf(streamId));
Unit unit = Unit.INSTANCE;
}
return -1L;
}
}, 0L);
}
/* compiled from: Http2Connection.kt */
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000R\u0011\u0010\u0005\u001a\u00020\u0006¢\u0006\b\n\u0000\u001a\u0004\b\u0007\u0010\bR\u000e\u0010\t\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000R\u000e\u0010\f\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000¨\u0006\r"}, d2 = {"Lokhttp3/internal/http2/Http2Connection$Companion;", "", "()V", "AWAIT_PING", "", "DEFAULT_SETTINGS", "Lokhttp3/internal/http2/Settings;", "getDEFAULT_SETTINGS", "()Lokhttp3/internal/http2/Settings;", "DEGRADED_PING", "DEGRADED_PONG_TIMEOUT_NS", "INTERVAL_PING", "OKHTTP_CLIENT_WINDOW_SIZE", "okhttp"}, k = 1, mv = {1, 4, 0})
/* loaded from: classes3.dex */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public final Settings getDEFAULT_SETTINGS() {
return Http2Connection.DEFAULT_SETTINGS;
}
}
static {
Settings settings = new Settings();
settings.set(7, 65535);
settings.set(5, 16384);
DEFAULT_SETTINGS = settings;
}
public final synchronized void awaitPong() throws InterruptedException {
while (this.awaitPongsReceived < this.awaitPingsSent) {
wait();
}
}
public final void close$okhttp(ErrorCode connectionCode, ErrorCode streamCode, IOException cause) {
int i;
Intrinsics.checkNotNullParameter(connectionCode, "connectionCode");
Intrinsics.checkNotNullParameter(streamCode, "streamCode");
if (!Util.assertionsEnabled || !Thread.holdsLock(this)) {
try {
shutdown(connectionCode);
} catch (IOException unused) {
}
Http2Stream[] http2StreamArr = null;
synchronized (this) {
if (!this.streams.isEmpty()) {
Object[] array = this.streams.values().toArray(new Http2Stream[0]);
if (array != null) {
http2StreamArr = (Http2Stream[]) array;
this.streams.clear();
} else {
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T>");
}
}
Unit unit = Unit.INSTANCE;
}
if (http2StreamArr != null) {
for (Http2Stream http2Stream : http2StreamArr) {
try {
http2Stream.close(streamCode, cause);
} catch (IOException unused2) {
}
}
}
try {
this.writer.close();
} catch (IOException unused3) {
}
try {
this.socket.close();
} catch (IOException unused4) {
}
this.writerQueue.shutdown();
this.pushQueue.shutdown();
this.settingsListenerQueue.shutdown();
return;
}
StringBuilder sb = new StringBuilder("Thread ");
Thread currentThread = Thread.currentThread();
Intrinsics.checkNotNullExpressionValue(currentThread, "Thread.currentThread()");
throw new AssertionError(sb.append(currentThread.getName()).append(" MUST NOT hold lock on ").append(this).toString());
}
}