正在查看: Kreate v1.5.0 应用的 JavaSocketOptionsKt.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Kreate v1.5.0 应用的 JavaSocketOptionsKt.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package io.ktor.network.sockets;
import io.ktor.network.sockets.SocketOptions;
import java.net.SocketOption;
import java.net.StandardSocketOptions;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SelectableChannel;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import kotlin.Metadata;
import kotlin.UByte;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0005\u001a\u0013\u0010\u0002\u001a\u00020\u0001*\u00020\u0000H\u0000¢\u0006\u0004\b\u0002\u0010\u0003\u001a\u001b\u0010\u0006\u001a\u00020\u0001*\u00020\u00002\u0006\u0010\u0005\u001a\u00020\u0004H\u0000¢\u0006\u0004\b\u0006\u0010\u0007\"\u001a\u0010\t\u001a\u00020\b8\u0000X\u0080\u0004¢\u0006\f\n\u0004\b\t\u0010\n\u001a\u0004\b\u000b\u0010\f¨\u0006\r"}, d2 = {"Ljava/nio/channels/SelectableChannel;", "", "nonBlocking", "(Ljava/nio/channels/SelectableChannel;)V", "Lio/ktor/network/sockets/SocketOptions;", "options", "assignOptions", "(Ljava/nio/channels/SelectableChannel;Lio/ktor/network/sockets/SocketOptions;)V", "", "java7NetworkApisAvailable", "Z", "getJava7NetworkApisAvailable", "()Z", "ktor-network"}, k = 2, mv = {2, 1, 0}, xi = 48)
public final class JavaSocketOptionsKt {
private static final boolean java7NetworkApisAvailable;
public static final boolean getJava7NetworkApisAvailable() {
return java7NetworkApisAvailable;
}
static {
boolean z;
try {
Class.forName("java.net.StandardSocketOptions");
z = true;
} catch (ClassNotFoundException unused) {
z = false;
}
java7NetworkApisAvailable = z;
}
public static final void nonBlocking(SelectableChannel selectableChannel) {
Intrinsics.checkNotNullParameter(selectableChannel, "<this>");
selectableChannel.configureBlocking(false);
}
public static final void assignOptions(SelectableChannel selectableChannel, SocketOptions options) {
SocketOption socketOption;
SocketOption socketOption2;
SocketOption socketOption3;
SocketOption socketOption4;
SocketOption socketOption5;
SocketOption socketOption6;
SocketOption socketOption7;
SocketOption socketOption8;
SocketOption socketOption9;
SocketOption socketOption10;
SocketOption socketOption11;
SocketOption socketOption12;
SocketOption socketOption13;
Intrinsics.checkNotNullParameter(selectableChannel, "<this>");
Intrinsics.checkNotNullParameter(options, "options");
if (selectableChannel instanceof SocketChannel) {
if (!TypeOfService.m237equalsimpl0(options.getTypeOfService(), TypeOfService.INSTANCE.m247getUNDEFINEDzieKYfw())) {
if (java7NetworkApisAvailable) {
socketOption13 = StandardSocketOptions.IP_TOS;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption13), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(options.getTypeOfService() & UByte.MAX_VALUE)));
} else {
((SocketChannel) selectableChannel).socket().setTrafficClass(options.getTypeOfService() & UByte.MAX_VALUE);
}
}
if (options.getReuseAddress()) {
if (java7NetworkApisAvailable) {
socketOption12 = StandardSocketOptions.SO_REUSEADDR;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption12), (SocketOption<SocketOption>) ((SocketOption) true));
} else {
((SocketChannel) selectableChannel).socket().setReuseAddress(true);
}
}
if (options.getReusePort()) {
SocketOptionsPlatformCapabilities.INSTANCE.setReusePort((SocketChannel) selectableChannel);
}
if (options instanceof SocketOptions.PeerSocketOptions) {
SocketOptions.PeerSocketOptions peerSocketOptions = (SocketOptions.PeerSocketOptions) options;
Integer valueOf = Integer.valueOf(peerSocketOptions.getReceiveBufferSize());
if (valueOf.intValue() <= 0) {
valueOf = null;
}
if (valueOf != null) {
int intValue = valueOf.intValue();
if (java7NetworkApisAvailable) {
socketOption11 = StandardSocketOptions.SO_RCVBUF;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption11), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(intValue)));
} else {
((SocketChannel) selectableChannel).socket().setReceiveBufferSize(intValue);
}
}
Integer valueOf2 = Integer.valueOf(peerSocketOptions.getSendBufferSize());
if (valueOf2.intValue() <= 0) {
valueOf2 = null;
}
if (valueOf2 != null) {
int intValue2 = valueOf2.intValue();
if (java7NetworkApisAvailable) {
socketOption10 = StandardSocketOptions.SO_SNDBUF;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption10), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(intValue2)));
} else {
((SocketChannel) selectableChannel).socket().setSendBufferSize(intValue2);
}
}
}
if (options instanceof SocketOptions.TCPClientSocketOptions) {
SocketOptions.TCPClientSocketOptions tCPClientSocketOptions = (SocketOptions.TCPClientSocketOptions) options;
Integer valueOf3 = Integer.valueOf(tCPClientSocketOptions.getLingerSeconds());
if (valueOf3.intValue() < 0) {
valueOf3 = null;
}
if (valueOf3 != null) {
int intValue3 = valueOf3.intValue();
if (java7NetworkApisAvailable) {
socketOption9 = StandardSocketOptions.SO_LINGER;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption9), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(intValue3)));
} else {
((SocketChannel) selectableChannel).socket().setSoLinger(true, intValue3);
}
}
Boolean keepAlive = tCPClientSocketOptions.getKeepAlive();
if (keepAlive != null) {
boolean booleanValue = keepAlive.booleanValue();
if (java7NetworkApisAvailable) {
socketOption8 = StandardSocketOptions.SO_KEEPALIVE;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption8), (SocketOption<SocketOption>) ((SocketOption) keepAlive));
} else {
((SocketChannel) selectableChannel).socket().setKeepAlive(booleanValue);
}
}
if (java7NetworkApisAvailable) {
socketOption7 = StandardSocketOptions.TCP_NODELAY;
((SocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption7), (SocketOption<SocketOption>) ((SocketOption) Boolean.valueOf(tCPClientSocketOptions.getNoDelay())));
} else {
((SocketChannel) selectableChannel).socket().setTcpNoDelay(tCPClientSocketOptions.getNoDelay());
}
}
}
if (selectableChannel instanceof ServerSocketChannel) {
if (options.getReuseAddress()) {
if (java7NetworkApisAvailable) {
socketOption6 = StandardSocketOptions.SO_REUSEADDR;
((ServerSocketChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption6), (SocketOption<SocketOption>) ((SocketOption) true));
} else {
((ServerSocketChannel) selectableChannel).socket().setReuseAddress(true);
}
}
if (options.getReusePort()) {
SocketOptionsPlatformCapabilities.INSTANCE.setReusePort((ServerSocketChannel) selectableChannel);
}
}
if (selectableChannel instanceof DatagramChannel) {
if (!TypeOfService.m237equalsimpl0(options.getTypeOfService(), TypeOfService.INSTANCE.m247getUNDEFINEDzieKYfw())) {
if (java7NetworkApisAvailable) {
socketOption5 = StandardSocketOptions.IP_TOS;
((DatagramChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption5), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(options.getTypeOfService() & UByte.MAX_VALUE)));
} else {
((DatagramChannel) selectableChannel).socket().setTrafficClass(options.getTypeOfService() & UByte.MAX_VALUE);
}
}
if (options.getReuseAddress()) {
if (java7NetworkApisAvailable) {
socketOption4 = StandardSocketOptions.SO_REUSEADDR;
((DatagramChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption4), (SocketOption<SocketOption>) ((SocketOption) true));
} else {
((DatagramChannel) selectableChannel).socket().setReuseAddress(true);
}
}
if (options.getReusePort()) {
SocketOptionsPlatformCapabilities.INSTANCE.setReusePort((DatagramChannel) selectableChannel);
}
if (options instanceof SocketOptions.UDPSocketOptions) {
if (java7NetworkApisAvailable) {
socketOption3 = StandardSocketOptions.SO_BROADCAST;
((DatagramChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption3), (SocketOption<SocketOption>) ((SocketOption) Boolean.valueOf(((SocketOptions.UDPSocketOptions) options).getBroadcast())));
} else {
((DatagramChannel) selectableChannel).socket().setBroadcast(((SocketOptions.UDPSocketOptions) options).getBroadcast());
}
}
if (options instanceof SocketOptions.PeerSocketOptions) {
SocketOptions.PeerSocketOptions peerSocketOptions2 = (SocketOptions.PeerSocketOptions) options;
Integer valueOf4 = Integer.valueOf(peerSocketOptions2.getReceiveBufferSize());
if (valueOf4.intValue() <= 0) {
valueOf4 = null;
}
if (valueOf4 != null) {
int intValue4 = valueOf4.intValue();
if (java7NetworkApisAvailable) {
socketOption2 = StandardSocketOptions.SO_RCVBUF;
((DatagramChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption2), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(intValue4)));
} else {
((DatagramChannel) selectableChannel).socket().setReceiveBufferSize(intValue4);
}
}
Integer valueOf5 = Integer.valueOf(peerSocketOptions2.getSendBufferSize());
Integer num = valueOf5.intValue() > 0 ? valueOf5 : null;
if (num != null) {
int intValue5 = num.intValue();
if (!java7NetworkApisAvailable) {
((DatagramChannel) selectableChannel).socket().setSendBufferSize(intValue5);
} else {
socketOption = StandardSocketOptions.SO_SNDBUF;
((DatagramChannel) selectableChannel).setOption((SocketOption<SocketOption<SocketOption>>) ((SocketOption<SocketOption>) socketOption), (SocketOption<SocketOption>) ((SocketOption) Integer.valueOf(intValue5)));
}
}
}
}
}
}