Skip to content

Commit 9bebd25

Browse files
committed
remove HAProxy handling
1 parent 9b42045 commit 9bebd25

11 files changed

Lines changed: 10 additions & 870 deletions

core/build.gradle.kts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,7 @@ dependencies {
5151
exclude("net.raphimc", "MinecraftAuth")
5252
}
5353

54-
implementation(libs.raknet) {
55-
exclude("io.netty", "*")
56-
}
57-
54+
implementation(files("/home/valaphee/Documents/CloudburstMC-Network/transport-raknet/build/libs/transport-raknet-1.0.0.CR3-SNAPSHOT.jar"))
5855

5956
// Network dependencies we are updating ourselves
6057
api(libs.netty.handler)

core/src/main/java/org/geysermc/geyser/network/GeyserBedrockPeer.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

core/src/main/java/org/geysermc/geyser/network/GeyserServerInitializer.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,6 @@ protected void preInitChannel(Channel channel) throws Exception {
6363
@Override
6464
public void initSession(@NonNull BedrockServerSession bedrockServerSession) {
6565
try {
66-
if (this.geyser.getGeyserServer().getProxiedAddresses() != null) {
67-
InetSocketAddress address = this.geyser.getGeyserServer().getProxiedAddresses().get((InetSocketAddress) bedrockServerSession.getSocketAddress());
68-
if (address != null) {
69-
((GeyserBedrockPeer) bedrockServerSession.getPeer()).setProxiedAddress(address);
70-
}
71-
}
72-
7366
bedrockServerSession.setLogging(this.geyser.config().debugMode());
7467
GeyserSession session = new GeyserSession(this.geyser, bedrockServerSession, this.eventLoopGroup.next());
7568

@@ -85,9 +78,4 @@ public void initSession(@NonNull BedrockServerSession bedrockServerSession) {
8578
bedrockServerSession.disconnect(e.getMessage());
8679
}
8780
}
88-
89-
@Override
90-
protected BedrockPeer createPeer(Channel channel) {
91-
return new GeyserBedrockPeer(channel, this::createSession);
92-
}
9381
}

core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,6 @@ public PacketSignal handle(LoginPacket loginPacket) {
200200
}
201201
receivedLoginPacket = true;
202202

203-
if (geyser.getSessionManager().reachedMaxConnectionsPerAddress(session)) {
204-
session.disconnect("Too many connections are originating from this location!");
205-
return PacketSignal.HANDLED;
206-
}
207-
208203
LoginEncryptionUtils.encryptPlayerConnection(session, loginPacket);
209204

210205
if (session.isClosed()) {

core/src/main/java/org/geysermc/geyser/network/netty/GeyserServer.java

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@
5454
import org.geysermc.geyser.network.GameProtocol;
5555
import org.geysermc.geyser.network.GeyserServerInitializer;
5656
import org.geysermc.geyser.network.netty.handler.RakConnectionRequestHandler;
57-
import org.geysermc.geyser.network.netty.handler.RakGeyserRateLimiter;
5857
import org.geysermc.geyser.network.netty.handler.RakPingHandler;
59-
import org.geysermc.geyser.network.netty.proxy.ProxyServerHandler;
6058
import org.geysermc.geyser.ping.GeyserPingInfo;
6159
import org.geysermc.geyser.ping.IGeyserPingPassthrough;
6260
import org.geysermc.geyser.skin.SkinProvider;
@@ -107,8 +105,6 @@ public final class GeyserServer {
107105
private final ServerBootstrap bootstrap;
108106
private EventLoopGroup playerGroup;
109107

110-
@Getter
111-
private final ExpiringMap<InetSocketAddress, InetSocketAddress> proxiedAddresses;
112108
private int listenCount;
113109

114110
private ChannelFuture[] bootstrapFutures;
@@ -136,14 +132,6 @@ public GeyserServer(GeyserImpl geyser, int threadCount) {
136132
this.listenCount = 1;
137133
}
138134

139-
if (this.geyser.config().advanced().bedrock().useHaproxyProtocol() || this.geyser.config().advanced().bedrock().useWaterdogpeForwarding()) {
140-
this.proxiedAddresses = ExpiringMap.builder()
141-
.expiration(30 + 1, TimeUnit.MINUTES)
142-
.expirationPolicy(ExpirationPolicy.ACCESSED).build();
143-
} else {
144-
this.proxiedAddresses = null;
145-
}
146-
147135
this.broadcastPort = geyser.config().advanced().bedrock().broadcastPort();
148136
}
149137

@@ -174,16 +162,12 @@ private void modifyHandlers(ChannelFuture future) {
174162
// Add proxy handler
175163
boolean isProxyProtocol = this.geyser.config().advanced().bedrock().useHaproxyProtocol();
176164
if (isProxyProtocol) {
177-
channel.pipeline().addFirst("proxy-protocol-decoder", new ProxyServerHandler());
165+
// TODO
178166
}
179167

180-
boolean isWhitelistedProxyProtocol = isProxyProtocol && !this.geyser.config().advanced().bedrock().haproxyProtocolWhitelistedIps().isEmpty();
181-
if (Boolean.parseBoolean(System.getProperty("Geyser.RakRateLimitingDisabled", "false")) || isWhitelistedProxyProtocol) {
168+
if (Boolean.parseBoolean(System.getProperty("Geyser.RakRateLimitingDisabled", "false"))) {
182169
// We would already block any non-whitelisted IP addresses in onConnectionRequest so we can remove the rate limiter
183170
channel.pipeline().remove(RakServerRateLimiter.NAME);
184-
} else {
185-
// Use our own rate limiter to allow multiple players from the same IP
186-
channel.pipeline().replace(RakServerRateLimiter.NAME, RakGeyserRateLimiter.NAME, new RakGeyserRateLimiter(channel));
187171
}
188172
});
189173
}
@@ -268,20 +252,11 @@ public boolean onConnectionRequest(InetSocketAddress inetSocketAddress) {
268252
}
269253
}
270254

271-
String ip;
272-
if (geyser.config().logPlayerIpAddresses()) {
273-
if (this.proxiedAddresses != null) {
274-
ip = this.proxiedAddresses.getOrDefault(inetSocketAddress, inetSocketAddress).toString();
275-
} else {
276-
ip = inetSocketAddress.toString();
277-
}
278-
} else {
279-
ip = "<IP address withheld>";
280-
}
255+
String ip = geyser.config().logPlayerIpAddresses() ? inetSocketAddress.toString() : "<IP address withheld>";
281256

282257
ConnectionRequestEvent requestEvent = new ConnectionRequestEvent(
283-
inetSocketAddress,
284-
this.proxiedAddresses != null ? this.proxiedAddresses.get(inetSocketAddress) : null
258+
inetSocketAddress,
259+
null
285260
);
286261
geyser.eventBus().fire(requestEvent);
287262
if (requestEvent.isCancelled()) {
@@ -297,16 +272,7 @@ public boolean onConnectionRequest(InetSocketAddress inetSocketAddress) {
297272

298273
public BedrockPong onQuery(Channel channel, InetSocketAddress inetSocketAddress) {
299274
if (geyser.config().debugMode() && PRINT_DEBUG_PINGS) {
300-
String ip;
301-
if (geyser.config().logPlayerIpAddresses()) {
302-
if (this.proxiedAddresses != null) {
303-
ip = this.proxiedAddresses.getOrDefault(inetSocketAddress, inetSocketAddress).toString();
304-
} else {
305-
ip = inetSocketAddress.toString();
306-
}
307-
} else {
308-
ip = "<IP address withheld>";
309-
}
275+
String ip = geyser.config().logPlayerIpAddresses() ? inetSocketAddress.toString() : "<IP address withheld>";
310276
geyser.getLogger().debug(GeyserLocale.getLocaleStringLog("geyser.network.pinged", ip));
311277
}
312278

core/src/main/java/org/geysermc/geyser/network/netty/handler/RakGeyserRateLimiter.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)