package okhttp3.internal.http;

import c.q.d.j;
import c.u.n;
import d.g;
import d.p;
import java.io.IOException;
import java.net.ProtocolException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okhttp3.internal.Util;
import okhttp3.internal.connection.Exchange;
import okhttp3.internal.connection.RealConnection;

/* JADX INFO: compiled from: CallServerInterceptor.kt */
/* JADX INFO: loaded from: classes.dex */
public final class CallServerInterceptor implements Interceptor {
    private final boolean forWebSocket;

    public CallServerInterceptor(boolean z) {
        this.forWebSocket = z;
    }

    @Override // okhttp3.Interceptor
    public Response intercept(Interceptor.Chain chain) throws IOException {
        boolean z;
        Response.Builder responseHeaders;
        j.c(chain, "chain");
        RealInterceptorChain realInterceptorChain = (RealInterceptorChain) chain;
        Exchange exchange = realInterceptorChain.exchange();
        Request request = realInterceptorChain.request();
        RequestBody requestBodyBody = request.body();
        long jCurrentTimeMillis = System.currentTimeMillis();
        exchange.writeRequestHeaders(request);
        if (!HttpMethod.permitsRequestBody(request.method()) || requestBodyBody == null) {
            exchange.noRequestBody();
            z = false;
            responseHeaders = null;
        } else {
            if (n.h("100-continue", request.header("Expect"), true)) {
                exchange.flushRequest();
                exchange.responseHeadersStart();
                responseHeaders = exchange.readResponseHeaders(true);
                z = true;
            } else {
                z = false;
                responseHeaders = null;
            }
            if (responseHeaders != null) {
                exchange.noRequestBody();
                RealConnection realConnectionConnection = exchange.connection();
                if (realConnectionConnection == null) {
                    j.g();
                    throw null;
                }
                if (!realConnectionConnection.isMultiplexed()) {
                    exchange.noNewExchangesOnConnection();
                }
            } else if (requestBodyBody.isDuplex()) {
                exchange.flushRequest();
                requestBodyBody.writeTo(p.c(exchange.createRequestBody(request, true)));
            } else {
                g gVarC = p.c(exchange.createRequestBody(request, false));
                requestBodyBody.writeTo(gVarC);
                gVarC.close();
            }
        }
        if (requestBodyBody == null || !requestBodyBody.isDuplex()) {
            exchange.finishRequest();
        }
        if (!z) {
            exchange.responseHeadersStart();
        }
        if (responseHeaders == null && (responseHeaders = exchange.readResponseHeaders(false)) == null) {
            j.g();
            throw null;
        }
        Response.Builder builderRequest = responseHeaders.request(request);
        RealConnection realConnectionConnection2 = exchange.connection();
        if (realConnectionConnection2 == null) {
            j.g();
            throw null;
        }
        Response responseBuild = builderRequest.handshake(realConnectionConnection2.handshake()).sentRequestAtMillis(jCurrentTimeMillis).receivedResponseAtMillis(System.currentTimeMillis()).build();
        int iCode = responseBuild.code();
        if (iCode == 100) {
            Response.Builder responseHeaders2 = exchange.readResponseHeaders(false);
            if (responseHeaders2 == null) {
                j.g();
                throw null;
            }
            Response.Builder builderRequest2 = responseHeaders2.request(request);
            RealConnection realConnectionConnection3 = exchange.connection();
            if (realConnectionConnection3 == null) {
                j.g();
                throw null;
            }
            responseBuild = builderRequest2.handshake(realConnectionConnection3.handshake()).sentRequestAtMillis(jCurrentTimeMillis).receivedResponseAtMillis(System.currentTimeMillis()).build();
            iCode = responseBuild.code();
        }
        exchange.responseHeadersEnd(responseBuild);
        Response responseBuild2 = (this.forWebSocket && iCode == 101) ? responseBuild.newBuilder().body(Util.EMPTY_RESPONSE).build() : responseBuild.newBuilder().body(exchange.openResponseBody(responseBuild)).build();
        if (n.h("close", responseBuild2.request().header("Connection"), true) || n.h("close", Response.header$default(responseBuild2, "Connection", null, 2, null), true)) {
            exchange.noNewExchangesOnConnection();
        }
        if (iCode == 204 || iCode == 205) {
            ResponseBody responseBodyBody = responseBuild2.body();
            if ((responseBodyBody != null ? responseBodyBody.contentLength() : -1L) > 0) {
                StringBuilder sb = new StringBuilder();
                sb.append("HTTP ");
                sb.append(iCode);
                sb.append(" had non-zero Content-Length: ");
                ResponseBody responseBodyBody2 = responseBuild2.body();
                sb.append(responseBodyBody2 != null ? Long.valueOf(responseBodyBody2.contentLength()) : null);
                throw new ProtocolException(sb.toString());
            }
        }
        return responseBuild2;
    }
}
