387 lines
9.7 KiB
Java
387 lines
9.7 KiB
Java
import java.io.EOFException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.net.Socket;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedGetter;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
|
|
@ObfuscatedName("ft")
|
|
@Implements("NetSocket")
|
|
public final class NetSocket extends AbstractSocket implements Runnable {
|
|
@ObfuscatedName("v")
|
|
@Export("inputStream")
|
|
InputStream inputStream;
|
|
@ObfuscatedName("o")
|
|
@Export("socket")
|
|
Socket socket;
|
|
@ObfuscatedName("h")
|
|
@Export("outputStream")
|
|
OutputStream outputStream;
|
|
@ObfuscatedName("g")
|
|
@Export("isClosed")
|
|
boolean isClosed;
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Lfw;"
|
|
)
|
|
@Export("taskHandler")
|
|
TaskHandler taskHandler;
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Lfn;"
|
|
)
|
|
@Export("task")
|
|
Task task;
|
|
@ObfuscatedName("d")
|
|
@Export("outBuffer")
|
|
byte[] outBuffer;
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedGetter(
|
|
intValue = 1965865583
|
|
)
|
|
@Export("outLength")
|
|
int outLength;
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedGetter(
|
|
intValue = -401346385
|
|
)
|
|
@Export("outOffset")
|
|
int outOffset;
|
|
@ObfuscatedName("r")
|
|
@Export("exceptionWriting")
|
|
boolean exceptionWriting;
|
|
@ObfuscatedName("k")
|
|
@ObfuscatedGetter(
|
|
intValue = -418935701
|
|
)
|
|
@Export("bufferLength")
|
|
final int bufferLength;
|
|
@ObfuscatedName("x")
|
|
@ObfuscatedGetter(
|
|
intValue = -1680142407
|
|
)
|
|
@Export("maxPacketLength")
|
|
final int maxPacketLength;
|
|
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Ljava/net/Socket;Lfw;I)V"
|
|
)
|
|
public NetSocket(Socket var1, TaskHandler var2, int var3) throws IOException {
|
|
this.isClosed = false; // L: 16
|
|
this.outLength = 0; // L: 20
|
|
this.outOffset = 0; // L: 21
|
|
this.exceptionWriting = false; // L: 22
|
|
this.taskHandler = var2; // L: 28
|
|
this.socket = var1; // L: 29
|
|
this.bufferLength = var3; // L: 30
|
|
this.maxPacketLength = var3 - 100; // L: 31
|
|
this.socket.setSoTimeout(30000); // L: 32
|
|
this.socket.setTcpNoDelay(true); // L: 33
|
|
this.socket.setReceiveBufferSize(65536); // L: 34
|
|
this.socket.setSendBufferSize(65536); // L: 35
|
|
this.inputStream = this.socket.getInputStream(); // L: 36
|
|
this.outputStream = this.socket.getOutputStream(); // L: 37
|
|
} // L: 38
|
|
|
|
@ObfuscatedName("v")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(B)V",
|
|
garbageValue = "105"
|
|
)
|
|
@Export("close")
|
|
public void close() {
|
|
if (!this.isClosed) { // L: 41
|
|
synchronized(this) { // L: 42
|
|
this.isClosed = true; // L: 43
|
|
this.notifyAll(); // L: 44
|
|
}
|
|
|
|
if (this.task != null) {
|
|
while (this.task.status == 0) {
|
|
GrandExchangeOfferTotalQuantityComparator.method6007(1L);
|
|
}
|
|
|
|
if (this.task.status == 1) {
|
|
try {
|
|
((Thread)this.task.result).join();
|
|
} catch (InterruptedException var3) {
|
|
}
|
|
}
|
|
}
|
|
|
|
this.task = null;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)I",
|
|
garbageValue = "-1669312252"
|
|
)
|
|
@Export("readUnsignedByte")
|
|
public int readUnsignedByte() throws IOException {
|
|
return this.isClosed ? 0 : this.inputStream.read();
|
|
}
|
|
|
|
@ObfuscatedName("h")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)I",
|
|
garbageValue = "-1264669351"
|
|
)
|
|
@Export("available")
|
|
public int available() throws IOException {
|
|
return this.isClosed ? 0 : this.inputStream.available();
|
|
}
|
|
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(II)Z",
|
|
garbageValue = "396806768"
|
|
)
|
|
@Export("isAvailable")
|
|
public boolean isAvailable(int var1) throws IOException {
|
|
if (this.isClosed) {
|
|
return false;
|
|
} else {
|
|
return this.inputStream.available() >= var1;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([BIII)I",
|
|
garbageValue = "52142940"
|
|
)
|
|
@Export("read")
|
|
public int read(byte[] var1, int var2, int var3) throws IOException {
|
|
if (this.isClosed) { // L: 80
|
|
return 0;
|
|
} else {
|
|
int var4;
|
|
int var5;
|
|
for (var4 = var3; var3 > 0; var3 -= var5) { // L: 81 82 86
|
|
var5 = this.inputStream.read(var1, var2, var3); // L: 83
|
|
if (var5 <= 0) { // L: 84
|
|
throw new EOFException();
|
|
}
|
|
|
|
var2 += var5; // L: 85
|
|
}
|
|
|
|
return var4; // L: 88
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([BIII)V",
|
|
garbageValue = "2083273816"
|
|
)
|
|
@Export("write0")
|
|
void write0(byte[] var1, int var2, int var3) throws IOException {
|
|
if (!this.isClosed) { // L: 92
|
|
if (this.exceptionWriting) { // L: 93
|
|
this.exceptionWriting = false; // L: 94
|
|
throw new IOException(); // L: 95
|
|
} else {
|
|
if (this.outBuffer == null) { // L: 97
|
|
this.outBuffer = new byte[this.bufferLength];
|
|
}
|
|
|
|
synchronized(this) { // L: 98
|
|
for (int var5 = 0; var5 < var3; ++var5) { // L: 99
|
|
this.outBuffer[this.outOffset] = var1[var5 + var2]; // L: 100
|
|
this.outOffset = (this.outOffset + 1) % this.bufferLength; // L: 101
|
|
if ((this.maxPacketLength + this.outLength) % this.bufferLength == this.outOffset) { // L: 102
|
|
throw new IOException(); // L: 103
|
|
}
|
|
}
|
|
|
|
if (this.task == null) { // L: 106
|
|
this.task = this.taskHandler.newThreadTask(this, 3); // L: 107
|
|
}
|
|
|
|
this.notifyAll(); // L: 109
|
|
}
|
|
}
|
|
}
|
|
} // L: 111
|
|
|
|
@ObfuscatedName("d")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([BIIB)V",
|
|
garbageValue = "-57"
|
|
)
|
|
@Export("write")
|
|
public void write(byte[] var1, int var2, int var3) throws IOException {
|
|
this.write0(var1, var2, var3); // L: 161
|
|
} // L: 162
|
|
|
|
protected void finalize() {
|
|
this.close();
|
|
}
|
|
|
|
public void run() {
|
|
try {
|
|
while (true) {
|
|
label84: {
|
|
int var1;
|
|
int var2;
|
|
synchronized(this) { // L: 118
|
|
if (this.outLength == this.outOffset) { // L: 119
|
|
if (this.isClosed) { // L: 120
|
|
break label84;
|
|
}
|
|
|
|
try {
|
|
this.wait(); // L: 122
|
|
} catch (InterruptedException var10) { // L: 124
|
|
}
|
|
}
|
|
|
|
var2 = this.outLength; // L: 126
|
|
if (this.outOffset >= this.outLength) { // L: 127
|
|
var1 = this.outOffset - this.outLength;
|
|
} else {
|
|
var1 = this.bufferLength - this.outLength; // L: 128
|
|
}
|
|
}
|
|
|
|
if (var1 <= 0) { // L: 130
|
|
continue;
|
|
}
|
|
|
|
try {
|
|
this.outputStream.write(this.outBuffer, var2, var1); // L: 132
|
|
} catch (IOException var9) { // L: 134
|
|
this.exceptionWriting = true; // L: 135
|
|
}
|
|
|
|
this.outLength = (var1 + this.outLength) % this.bufferLength; // L: 137
|
|
|
|
try {
|
|
if (this.outOffset == this.outLength) { // L: 139
|
|
this.outputStream.flush();
|
|
}
|
|
} catch (IOException var8) { // L: 141
|
|
this.exceptionWriting = true; // L: 142
|
|
}
|
|
continue;
|
|
}
|
|
|
|
try {
|
|
if (this.inputStream != null) { // L: 147
|
|
this.inputStream.close();
|
|
}
|
|
|
|
if (this.outputStream != null) { // L: 148
|
|
this.outputStream.close();
|
|
}
|
|
|
|
if (this.socket != null) { // L: 149
|
|
this.socket.close();
|
|
}
|
|
} catch (IOException var7) { // L: 151
|
|
}
|
|
|
|
this.outBuffer = null; // L: 152
|
|
break;
|
|
}
|
|
} catch (Exception var12) { // L: 154
|
|
class301.RunException_sendStackTrace((String)null, var12); // L: 155
|
|
}
|
|
|
|
} // L: 157
|
|
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Ljava/lang/CharSequence;II[BII)I",
|
|
garbageValue = "682010792"
|
|
)
|
|
@Export("encodeStringCp1252")
|
|
public static int encodeStringCp1252(CharSequence var0, int var1, int var2, byte[] var3, int var4) {
|
|
int var5 = var2 - var1; // L: 45
|
|
|
|
for (int var6 = 0; var6 < var5; ++var6) { // L: 46
|
|
char var7 = var0.charAt(var6 + var1); // L: 47
|
|
if (var7 > 0 && var7 < 128 || var7 >= 160 && var7 <= 255) { // L: 48
|
|
var3[var6 + var4] = (byte)var7;
|
|
} else if (var7 == 8364) { // L: 49
|
|
var3[var6 + var4] = -128;
|
|
} else if (var7 == 8218) { // L: 50
|
|
var3[var6 + var4] = -126;
|
|
} else if (var7 == 402) { // L: 51
|
|
var3[var6 + var4] = -125;
|
|
} else if (var7 == 8222) { // L: 52
|
|
var3[var6 + var4] = -124;
|
|
} else if (var7 == 8230) { // L: 53
|
|
var3[var6 + var4] = -123;
|
|
} else if (var7 == 8224) {
|
|
var3[var6 + var4] = -122;
|
|
} else if (var7 == 8225) {
|
|
var3[var6 + var4] = -121;
|
|
} else if (var7 == 710) {
|
|
var3[var6 + var4] = -120;
|
|
} else if (var7 == 8240) {
|
|
var3[var6 + var4] = -119;
|
|
} else if (var7 == 352) { // L: 58
|
|
var3[var6 + var4] = -118;
|
|
} else if (var7 == 8249) { // L: 59
|
|
var3[var6 + var4] = -117;
|
|
} else if (var7 == 338) { // L: 60
|
|
var3[var6 + var4] = -116;
|
|
} else if (var7 == 381) { // L: 61
|
|
var3[var6 + var4] = -114;
|
|
} else if (var7 == 8216) { // L: 62
|
|
var3[var6 + var4] = -111;
|
|
} else if (var7 == 8217) { // L: 63
|
|
var3[var6 + var4] = -110;
|
|
} else if (var7 == 8220) { // L: 64
|
|
var3[var6 + var4] = -109;
|
|
} else if (var7 == 8221) { // L: 65
|
|
var3[var6 + var4] = -108;
|
|
} else if (var7 == 8226) { // L: 66
|
|
var3[var6 + var4] = -107;
|
|
} else if (var7 == 8211) { // L: 67
|
|
var3[var6 + var4] = -106;
|
|
} else if (var7 == 8212) { // L: 68
|
|
var3[var6 + var4] = -105;
|
|
} else if (var7 == 732) { // L: 69
|
|
var3[var6 + var4] = -104;
|
|
} else if (var7 == 8482) { // L: 70
|
|
var3[var6 + var4] = -103;
|
|
} else if (var7 == 353) { // L: 71
|
|
var3[var6 + var4] = -102;
|
|
} else if (var7 == 8250) { // L: 72
|
|
var3[var6 + var4] = -101;
|
|
} else if (var7 == 339) { // L: 73
|
|
var3[var6 + var4] = -100;
|
|
} else if (var7 == 382) { // L: 74
|
|
var3[var6 + var4] = -98;
|
|
} else if (var7 == 376) { // L: 75
|
|
var3[var6 + var4] = -97;
|
|
} else {
|
|
var3[var6 + var4] = 63; // L: 76
|
|
}
|
|
}
|
|
|
|
return var5; // L: 78
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIII)I",
|
|
garbageValue = "1228266479"
|
|
)
|
|
public static int method3271(int var0, int var1, int var2) {
|
|
int var3 = class260.method5203(var2 - var1 + 1); // L: 54
|
|
var3 <<= var1; // L: 55
|
|
var0 |= var3; // L: 56
|
|
return var0; // L: 57
|
|
}
|
|
}
|