mirror of
https://github.com/ViaVersion/ViaProxy.git
synced 2025-04-09 12:54:25 -04:00
Made connect timeout configurable
This commit is contained in:
parent
6cd251020c
commit
193ce90df3
5 changed files with 24 additions and 4 deletions
src/main
java/net/raphimc/viaproxy
protocoltranslator/viaproxy
proxy/session
resources/assets/viaproxy
|
@ -57,6 +57,7 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
private final OptionSpec<String> optionTargetAddress;
|
||||
private final OptionSpec<ProtocolVersion> optionTargetVersion;
|
||||
private final OptionSpec<Boolean> optionProxyOnlineMode;
|
||||
private final OptionSpec<Integer> optionConnectTimeout;
|
||||
private final OptionSpec<AuthMethod> optionAuthMethod;
|
||||
private final OptionSpec<Integer> optionMinecraftAccountIndex;
|
||||
private final OptionSpec<Boolean> optionBetacraftAuth;
|
||||
|
@ -79,6 +80,7 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
private SocketAddress bindAddress = AddressUtil.parse("0.0.0.0:25568", null);
|
||||
private SocketAddress targetAddress = AddressUtil.parse("127.0.0.1:25565", null);
|
||||
private ProtocolVersion targetVersion = ProtocolTranslator.AUTO_DETECT_PROTOCOL;
|
||||
private int connectTimeout = 8000;
|
||||
private boolean proxyOnlineMode = false;
|
||||
private AuthMethod authMethod = AuthMethod.NONE;
|
||||
private Account account = null;
|
||||
|
@ -108,6 +110,7 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
this.optionTargetAddress = this.optionParser.accepts("target-address").withRequiredArg().ofType(String.class).defaultsTo(AddressUtil.toString(this.targetAddress));
|
||||
this.optionTargetVersion = this.optionParser.accepts("target-version").withRequiredArg().withValuesConvertedBy(new ProtocolVersionConverter()).defaultsTo(this.targetVersion);
|
||||
this.optionProxyOnlineMode = this.optionParser.accepts("proxy-online-mode").withRequiredArg().ofType(Boolean.class).defaultsTo(this.proxyOnlineMode);
|
||||
this.optionConnectTimeout = this.optionParser.accepts("connect-timeout").withRequiredArg().ofType(Integer.class).defaultsTo(this.connectTimeout);
|
||||
this.optionAuthMethod = this.optionParser.accepts("auth-method").withRequiredArg().ofType(AuthMethod.class).defaultsTo(this.authMethod);
|
||||
this.optionMinecraftAccountIndex = this.optionParser.accepts("minecraft-account-index").withRequiredArg().ofType(Integer.class).defaultsTo(0);
|
||||
this.optionBetacraftAuth = this.optionParser.accepts("betacraft-auth").withRequiredArg().ofType(Boolean.class).defaultsTo(this.betacraftAuth);
|
||||
|
@ -136,6 +139,7 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
this.targetVersion = ProtocolVersion.getClosest(this.getString("target-version", this.targetVersion.getName()));
|
||||
this.checkTargetVersion();
|
||||
this.targetAddress = AddressUtil.parse(this.getString("target-address", AddressUtil.toString(this.targetAddress)), this.targetVersion);
|
||||
this.connectTimeout = this.getInt("connect-timeout", this.connectTimeout);
|
||||
this.proxyOnlineMode = this.getBoolean("proxy-online-mode", this.proxyOnlineMode);
|
||||
this.authMethod = AuthMethod.byName(this.getString("auth-method", this.authMethod.name()));
|
||||
final List<Account> accounts = ViaProxy.getSaveManager().accountsSave.getAccounts();
|
||||
|
@ -174,6 +178,7 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
this.targetVersion = options.valueOf(this.optionTargetVersion);
|
||||
this.checkTargetVersion();
|
||||
this.targetAddress = AddressUtil.parse(options.valueOf(this.optionTargetAddress), this.targetVersion);
|
||||
this.connectTimeout = options.valueOf(this.optionConnectTimeout);
|
||||
this.proxyOnlineMode = options.valueOf(this.optionProxyOnlineMode);
|
||||
this.authMethod = options.valueOf(this.optionAuthMethod);
|
||||
final List<Account> accounts = ViaProxy.getSaveManager().accountsSave.getAccounts();
|
||||
|
@ -259,6 +264,15 @@ public class ViaProxyConfig extends Config implements com.viaversion.viaversion.
|
|||
this.set("target-version", targetVersion.getName());
|
||||
}
|
||||
|
||||
public int getConnectTimeout() {
|
||||
return this.connectTimeout;
|
||||
}
|
||||
|
||||
public void setConnectTimeout(final int connectTimeout) {
|
||||
this.connectTimeout = connectTimeout;
|
||||
this.set("connect-timeout", connectTimeout);
|
||||
}
|
||||
|
||||
public boolean isProxyOnlineMode() {
|
||||
return this.proxyOnlineMode;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import net.raphimc.netminecraft.util.ChannelType;
|
|||
import net.raphimc.viabedrock.protocol.data.ProtocolConstants;
|
||||
import net.raphimc.vialoader.netty.VLPipeline;
|
||||
import net.raphimc.vialoader.netty.viabedrock.PingEncapsulationCodec;
|
||||
import net.raphimc.viaproxy.ViaProxy;
|
||||
import org.cloudburstmc.netty.channel.raknet.RakChannelFactory;
|
||||
import org.cloudburstmc.netty.channel.raknet.config.RakChannelOption;
|
||||
|
||||
|
@ -53,11 +54,11 @@ public class BedrockProxyConnection extends ProxyConnection {
|
|||
bootstrap
|
||||
.group(channelType.clientEventLoopGroup().get())
|
||||
.channelFactory(RakChannelFactory.client(channelClass))
|
||||
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 4_000)
|
||||
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, ViaProxy.getConfig().getConnectTimeout())
|
||||
.option(RakChannelOption.RAK_PROTOCOL_VERSION, ProtocolConstants.BEDROCK_RAKNET_PROTOCOL_VERSION)
|
||||
.option(RakChannelOption.RAK_COMPATIBILITY_MODE, true)
|
||||
.option(RakChannelOption.RAK_CLIENT_INTERNAL_ADDRESSES, 20)
|
||||
.option(RakChannelOption.RAK_CONNECT_TIMEOUT, 4_000L)
|
||||
.option(RakChannelOption.RAK_CONNECT_TIMEOUT, (long) ViaProxy.getConfig().getConnectTimeout())
|
||||
.option(RakChannelOption.RAK_SESSION_TIMEOUT, 30_000L)
|
||||
.option(RakChannelOption.RAK_GUID, ThreadLocalRandom.current().nextLong())
|
||||
.attr(ProxyConnection.PROXY_CONNECTION_ATTRIBUTE_KEY, this)
|
||||
|
|
|
@ -22,6 +22,7 @@ import io.netty.channel.*;
|
|||
import io.netty.util.AttributeKey;
|
||||
import net.raphimc.netminecraft.netty.connection.NetClient;
|
||||
import net.raphimc.netminecraft.util.ChannelType;
|
||||
import net.raphimc.viaproxy.ViaProxy;
|
||||
|
||||
import java.net.SocketAddress;
|
||||
import java.util.function.Function;
|
||||
|
@ -45,7 +46,7 @@ public class LegacyProxyConnection extends NetClient {
|
|||
|
||||
@Override
|
||||
public void initialize(final ChannelType channelType, final Bootstrap bootstrap) {
|
||||
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 4_000);
|
||||
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, ViaProxy.getConfig().getConnectTimeout());
|
||||
bootstrap.attr(LEGACY_PROXY_CONNECTION_ATTRIBUTE_KEY, this);
|
||||
super.initialize(channelType, bootstrap);
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import net.raphimc.netminecraft.packet.impl.login.S2CLoginDisconnectPacket1_20_3
|
|||
import net.raphimc.netminecraft.packet.impl.status.S2CStatusResponsePacket;
|
||||
import net.raphimc.netminecraft.packet.registry.PacketRegistryUtil;
|
||||
import net.raphimc.netminecraft.util.ChannelType;
|
||||
import net.raphimc.viaproxy.ViaProxy;
|
||||
import net.raphimc.viaproxy.cli.ConsoleFormatter;
|
||||
import net.raphimc.viaproxy.proxy.packethandler.PacketHandler;
|
||||
import net.raphimc.viaproxy.proxy.util.CloseAndReturn;
|
||||
|
@ -100,7 +101,7 @@ public class ProxyConnection extends NetClient {
|
|||
|
||||
@Override
|
||||
public void initialize(final ChannelType channelType, final Bootstrap bootstrap) {
|
||||
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 4_000);
|
||||
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, ViaProxy.getConfig().getConnectTimeout());
|
||||
bootstrap.attr(PROXY_CONNECTION_ATTRIBUTE_KEY, this);
|
||||
super.initialize(channelType, bootstrap);
|
||||
}
|
||||
|
|
|
@ -10,6 +10,9 @@ target-address: "127.0.0.1:25565"
|
|||
# The version ViaProxy should translate to. (See ViaProxy GUI for a list of versions)
|
||||
target-version: "Auto Detect (1.7+ servers)"
|
||||
#
|
||||
# The connect timeout for backend server connections in milliseconds.
|
||||
connect-timeout: 8000
|
||||
#
|
||||
# Proxy Online Mode allows you to see skins on online mode servers and use the signed chat features.
|
||||
# Enabling Proxy Online Mode requires your client to have a valid minecraft account.
|
||||
proxy-online-mode: false
|
||||
|
|
Loading…
Add table
Reference in a new issue