QuicheTransport class
Пакет: com.hypixel.hytale.server.core.io.transport
Файл: com/hypixel/hytale/server/core/io/transport/QuicheTransport.java
implements: Transport
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
QuicheServerCredentials |
credentials |
|
StandardProtocolFamily |
var2 |
|
HytaleServerConfig |
var3 |
|
HytaleServerConfig.TimeoutProfile |
var4 |
|
RateLimitConfig |
var5 |
|
QuicheConfig.RateLimit |
var6 |
|
QuicheConfig |
var7 |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.io.transport;
class="kw">import com.hypixel.hytale.lib.quiche.QuicheConfig;
class="kw">import com.hypixel.hytale.lib.quiche.QuicheListener;
class="kw">import com.hypixel.hytale.lib.quiche.QuicheServerCredentials;
class="kw">import com.hypixel.hytale.protocol.io.ServerListener;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.HytaleServerConfig;
class="kw">import com.hypixel.hytale.server.core.auth.ServerAuthManager;
class="kw">import com.hypixel.hytale.server.core.config.RateLimitConfig;
class="kw">import com.hypixel.hytale.server.core.io.PacketHandler;
class="kw">import com.hypixel.hytale.server.core.io.handlers.InitialPacketHandler;
class="kw">import com.hypixel.hytale.server.core.io.stream.PendingStreamConnectionHandler;
class="kw">import com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import java.net.Inet6Address;
class="kw">import java.net.InetSocketAddress;
class="kw">import java.net.StandardProtocolFamily;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">public class QuicheTransport class="kw">implements Transport {
class="kw">private class="kw">final QuicheServerCredentials credentials = QuicheServerCredentials.generateSelfSigned();
class="kw">public QuicheTransport() {
ServerAuthManager.getInstance().setServerCertificate(this.credentials.certificate());
}
@Override
class="kw">public TransportType getType() {
class="kw">return TransportType.QUICHE;
}
@Override
class="kw">public CompletableFuture<ServerListener> bind(InetSocketAddress var1) {
class="kw">return CompletableFuture.supplyAsync(
SneakyThrow.sneakySupplier(
() -> {
StandardProtocolFamily var2 = var1.getAddress() class="kw">instanceof Inet6Address ? StandardProtocolFamily.INET6 : StandardProtocolFamily.INET;
HytaleServerConfig var3 = HytaleServer.get().getConfig();
HytaleServerConfig.TimeoutProfile var4 = var3.getConnectionTimeouts();
RateLimitConfig var5 = var3.getRateLimitConfig();
QuicheConfig.RateLimit var6 = var5.isEnabled()
? new QuicheConfig.RateLimit(var5.getBurstCapacity(), var5.getPacketsPerSecond())
: QuicheConfig.RateLimit.DISABLED;
QuicheConfig var7 = new QuicheConfig(var4.getInitial(), var4.getInitial(), var4.getAuxStreamPending(), var6);
class="kw">return new QuicheListener(
var2,
var1,
this.credentials,
var7,
InitialPacketHandler::new,
(var0, var1x) -> var0 class="kw">instanceof PacketHandler var2 ? new PendingStreamConnectionHandler(var2, var1x) : null
);
}
)
);
}
@Override
class="kw">public void shutdown() {
}
}