180 lines
7 KiB
Java
180 lines
7 KiB
Java
package com.discord.utilities.websocket;
|
|
|
|
import d0.y.b;
|
|
import d0.y.i;
|
|
import d0.z.d.m;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.nio.charset.Charset;
|
|
import java.nio.charset.CharsetDecoder;
|
|
import java.util.zip.Inflater;
|
|
import java.util.zip.InflaterOutputStream;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import okhttp3.Response;
|
|
import okhttp3.WebSocket;
|
|
import okhttp3.WebSocketListener;
|
|
import okio.ByteString;
|
|
/* compiled from: ZLibWebSocketListener.kt */
|
|
public final class ZLibWebSocketListener extends WebSocketListener {
|
|
private final Inflater inflater = new Inflater();
|
|
private final Listener listener;
|
|
private final Inflater loggingInflater = new Inflater();
|
|
|
|
/* compiled from: ZLibWebSocketListener.kt */
|
|
public static abstract class Listener extends WebSocketListener {
|
|
private final RawMessageHandler rawMessageHandler;
|
|
|
|
public RawMessageHandler getRawMessageHandler() {
|
|
return this.rawMessageHandler;
|
|
}
|
|
|
|
public abstract void onInflateError(Exception exc);
|
|
|
|
public abstract void onInflatedMessage(WebSocket webSocket, InputStreamReader inputStreamReader, int i);
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public final void onMessage(WebSocket webSocket, String str) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(str, "text");
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public final void onMessage(WebSocket webSocket, ByteString byteString) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(byteString, "bytes");
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
}
|
|
|
|
/* compiled from: ZLibWebSocketListener.kt */
|
|
public static final class ZLibByteStream extends ByteArrayOutputStream {
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final int INFLATE_BUFFER_SIZE = 4096;
|
|
private static final int INITIAL_BUFFER_SIZE_MULTIPLIER = 2;
|
|
private static final CharsetDecoder UTF8_DECODER = Charset.forName("UTF-8").newDecoder();
|
|
|
|
/* compiled from: ZLibWebSocketListener.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
public ZLibByteStream(ByteString byteString, Inflater inflater) {
|
|
super(byteString.j() * 2);
|
|
m.checkNotNullParameter(byteString, "bytes");
|
|
m.checkNotNullParameter(inflater, "inflater");
|
|
InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(this, inflater, 4096);
|
|
byteString.r(inflaterOutputStream);
|
|
inflaterOutputStream.flush();
|
|
}
|
|
|
|
public final InputStreamReader toReader() {
|
|
return new InputStreamReader(new ByteArrayInputStream(((ByteArrayOutputStream) this).buf, 0, ((ByteArrayOutputStream) this).count), UTF8_DECODER);
|
|
}
|
|
}
|
|
|
|
public ZLibWebSocketListener(Listener listener) {
|
|
m.checkNotNullParameter(listener, "listener");
|
|
this.listener = listener;
|
|
}
|
|
|
|
private final void resetInflaters() {
|
|
this.inflater.reset();
|
|
this.loggingInflater.reset();
|
|
}
|
|
|
|
public final Listener getListener() {
|
|
return this.listener;
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onClosed(WebSocket webSocket, int i, String str) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(str, "reason");
|
|
resetInflaters();
|
|
this.listener.onClosed(webSocket, i, str);
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onClosing(WebSocket webSocket, int i, String str) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(str, "reason");
|
|
resetInflaters();
|
|
this.listener.onClosing(webSocket, i, str);
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onFailure(WebSocket webSocket, Throwable th, Response response) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(th, "t");
|
|
resetInflaters();
|
|
this.listener.onFailure(webSocket, th, response);
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onMessage(WebSocket webSocket, String str) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(str, "text");
|
|
this.listener.onMessage(webSocket, str);
|
|
}
|
|
|
|
/* JADX WARNING: Code restructure failed: missing block: B:10:0x0035, code lost:
|
|
r3 = move-exception;
|
|
*/
|
|
/* JADX WARNING: Code restructure failed: missing block: B:11:0x0036, code lost:
|
|
d0.y.b.closeFinally(r0, r2);
|
|
*/
|
|
/* JADX WARNING: Code restructure failed: missing block: B:12:0x0039, code lost:
|
|
throw r3;
|
|
*/
|
|
/* JADX WARNING: Code restructure failed: missing block: B:24:0x0061, code lost:
|
|
r6 = move-exception;
|
|
*/
|
|
/* JADX WARNING: Code restructure failed: missing block: B:25:0x0062, code lost:
|
|
d0.y.b.closeFinally(r0, r5);
|
|
*/
|
|
/* JADX WARNING: Code restructure failed: missing block: B:26:0x0065, code lost:
|
|
throw r6;
|
|
*/
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onMessage(WebSocket webSocket, ByteString byteString) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(byteString, "bytes");
|
|
if (this.listener.getRawMessageHandler() != null) {
|
|
try {
|
|
InputStreamReader reader = new ZLibByteStream(byteString, this.loggingInflater).toReader();
|
|
String readText = i.readText(reader);
|
|
RawMessageHandler rawMessageHandler = this.listener.getRawMessageHandler();
|
|
m.checkNotNull(rawMessageHandler);
|
|
rawMessageHandler.onRawMessage(readText);
|
|
b.closeFinally(reader, null);
|
|
} catch (Throwable th) {
|
|
RawMessageHandler rawMessageHandler2 = this.listener.getRawMessageHandler();
|
|
m.checkNotNull(rawMessageHandler2);
|
|
rawMessageHandler2.onRawMessageInflateFailed(th);
|
|
}
|
|
}
|
|
try {
|
|
InputStreamReader reader2 = new ZLibByteStream(byteString, this.inflater).toReader();
|
|
this.listener.onInflatedMessage(webSocket, reader2, byteString.j());
|
|
b.closeFinally(reader2, null);
|
|
} catch (Exception e) {
|
|
this.listener.onInflateError(e);
|
|
}
|
|
}
|
|
|
|
@Override // okhttp3.WebSocketListener
|
|
public void onOpen(WebSocket webSocket, Response response) {
|
|
m.checkNotNullParameter(webSocket, "webSocket");
|
|
m.checkNotNullParameter(response, "response");
|
|
resetInflaters();
|
|
this.listener.onOpen(webSocket, response);
|
|
}
|
|
}
|