diff --git a/eaglercraftbungee/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/eaglercraftbungee/src/main/java/net/md_5/bungee/connection/InitialHandler.java index 0909e1b..9bacd83 100644 --- a/eaglercraftbungee/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/eaglercraftbungee/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -137,7 +137,10 @@ public class InitialHandler extends PacketHandler implements PendingConnection { this.disconnect("Go fuck yourself"); return; } - InetAddress sc = WebSocketProxy.localToRemote.get(this.ch.getHandle().remoteAddress()); + InetAddress sc; + synchronized(WebSocketProxy.localToRemote) { + sc = WebSocketProxy.localToRemote.get(this.ch.getHandle().remoteAddress()); + } if(sc == null) { this.bungee.getLogger().log(Level.WARNING, "player '" + un + "' doesn't have a websocket IP, remote address: " + this.ch.getHandle().remoteAddress().toString()); }else { @@ -150,7 +153,10 @@ public class InitialHandler extends PacketHandler implements PendingConnection { this.bungee.getLogger().log(Level.INFO, "Player '" + un + "' [" + sc.toString() + "] has remote websocket IP: " + sc.getHostAddress()); } } - String dnm = WebSocketProxy.origins.get(this.ch.getHandle().remoteAddress()); + String dnm; + synchronized(WebSocketProxy.localToRemote) { + dnm = WebSocketProxy.origins.get(this.ch.getHandle().remoteAddress()); + } if(dnm != null) { if(dnm.equalsIgnoreCase("null")) { this.bungee.getLogger().log(Level.INFO, "Player '" + un + "' [" + sc.toString() + "] is using an offline download"); diff --git a/eaglercraftbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java b/eaglercraftbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java index 4715c42..8c4571e 100644 --- a/eaglercraftbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java +++ b/eaglercraftbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java @@ -47,8 +47,10 @@ public class WebSocketProxy extends SimpleChannelInboundHandler { } public void killConnection() { - localToRemote.remove(localAddress); - origins.remove(localAddress); + synchronized(localToRemote) { + localToRemote.remove(localAddress); + origins.remove(localAddress); + } if(tcpChannel != null && tcpChannel.isOpen()) { try { tcpChannel.disconnect().sync(); @@ -72,16 +74,20 @@ public class WebSocketProxy extends SimpleChannelInboundHandler { socketChannel.closeFuture().addListener(new GenericFutureListener>() { @Override public void operationComplete(Future paramF) throws Exception { - localToRemote.remove(localAddress); - origins.remove(localAddress); + synchronized(localToRemote) { + localToRemote.remove(localAddress); + origins.remove(localAddress); + } } }); } }); tcpChannel = (NioSocketChannel) clientBootstrap.connect().sync().channel(); - localToRemote.put(localAddress = tcpChannel.localAddress(), realRemoteAddr); - if(origin != null) { - origins.put(localAddress, origin); + synchronized(localToRemote) { + localToRemote.put(localAddress = tcpChannel.localAddress(), realRemoteAddr); + if(origin != null) { + origins.put(localAddress, origin); + } } return true; } @@ -111,8 +117,10 @@ public class WebSocketProxy extends SimpleChannelInboundHandler { } public void finalize() { - localToRemote.remove(localAddress); - origins.remove(localAddress); + synchronized(localToRemote) { + localToRemote.remove(localAddress); + origins.remove(localAddress); + } } } diff --git a/stable-download/java/bukkit_command/craftbukkit-1.5.2-R1.0.jar b/stable-download/java/bukkit_command/craftbukkit-1.5.2-R1.0.jar index 8194108..892696b 100644 Binary files a/stable-download/java/bukkit_command/craftbukkit-1.5.2-R1.0.jar and b/stable-download/java/bukkit_command/craftbukkit-1.5.2-R1.0.jar differ diff --git a/stable-download/java/bungee_command/bungee-dist.jar b/stable-download/java/bungee_command/bungee-dist.jar index a82deee..685a513 100644 Binary files a/stable-download/java/bungee_command/bungee-dist.jar and b/stable-download/java/bungee_command/bungee-dist.jar differ diff --git a/stable-download/java/bungee_command/config.yml b/stable-download/java/bungee_command/config.yml index 390ef06..ce975da 100644 --- a/stable-download/java/bungee_command/config.yml +++ b/stable-download/java/bungee_command/config.yml @@ -1,3 +1,6 @@ +origin_blacklist_block_replit_clients: false +enable_web_origin_blacklist: true +server_name: EaglercraftBungee Server listeners: - fallback_server: lobby tab_list: GLOBAL_PING @@ -49,14 +52,11 @@ listeners: limit_lockout: 25 lockout_duration: 900 exceptions: [] +stats: 1795b100-6c57-4568-957f-810efbd77cc3 +groups: {} player_limit: -1 -timeout: 30000 -servers: - lobby: - address: localhost:25569 - restricted: false -server_name: EaglercraftBungee Server -display_ban_type_on_kick: false +origin_blacklist_block_offline_download: false +origin_blacklist_block_missing_origin_header: false permissions: default: - bungeecord.command.server @@ -79,4 +79,8 @@ permissions: - bungeecord.command.eag.blockdomain - bungeecord.command.eag.blockdomainname - bungeecord.command.eag.unblockdomain -groups: {} +origin_blacklist_subscriptions: +- https://g.eags.us/eaglercraft/origin_blacklist.txt +- https://raw.githubusercontent.com/LAX1DUDE/eaglercraft/main/stable-download/origin_blacklist.txt +display_ban_type_on_kick: false +timeout: 30000 diff --git a/stable-download/stable-download-SECURE.zip b/stable-download/stable-download-SECURE.zip index da4835b..5e95ea3 100644 Binary files a/stable-download/stable-download-SECURE.zip and b/stable-download/stable-download-SECURE.zip differ diff --git a/stable-download/stable-download-new.zip b/stable-download/stable-download-new.zip index e0cbf63..95dde32 100644 Binary files a/stable-download/stable-download-new.zip and b/stable-download/stable-download-new.zip differ diff --git a/stable-download/stable-download_repl.zip b/stable-download/stable-download_repl.zip index e0cbf63..ad73b9d 100644 Binary files a/stable-download/stable-download_repl.zip and b/stable-download/stable-download_repl.zip differ