diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginController.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginController.java index b7865426f2..9601b005b8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginController.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginController.java @@ -323,21 +323,39 @@ public class LoginController _bannedIps.putIfAbsent(address, System.currentTimeMillis() + duration); } - public boolean isBannedAddress(InetAddress address) throws UnknownHostException + public boolean isBannedAddress(InetAddress address) { final String[] parts = address.getHostAddress().split("\\."); Long bi = _bannedIps.get(address); if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + } + catch (UnknownHostException e) + { + } } if (bi != null) { diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/SelectorHelper.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/SelectorHelper.java index 551816b583..fd2418e86f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/SelectorHelper.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/SelectorHelper.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -60,7 +59,7 @@ public class SelectorHelper implements IMMOExecutor, IClientFacto } @Override - public boolean accept(SocketChannel sc) throws UnknownHostException + public boolean accept(SocketChannel sc) { return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java index afa58be791..a0b2f52439 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver.network.mmocore; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; /** @@ -24,5 +23,5 @@ import java.nio.channels.SocketChannel; */ public interface IAcceptFilter { - boolean accept(SocketChannel sc) throws UnknownHostException; + boolean accept(SocketChannel sc); } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginController.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginController.java index b7865426f2..9601b005b8 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginController.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginController.java @@ -323,21 +323,39 @@ public class LoginController _bannedIps.putIfAbsent(address, System.currentTimeMillis() + duration); } - public boolean isBannedAddress(InetAddress address) throws UnknownHostException + public boolean isBannedAddress(InetAddress address) { final String[] parts = address.getHostAddress().split("\\."); Long bi = _bannedIps.get(address); if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + } + catch (UnknownHostException e) + { + } } if (bi != null) { diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/SelectorHelper.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/SelectorHelper.java index 551816b583..fd2418e86f 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/SelectorHelper.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/SelectorHelper.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -60,7 +59,7 @@ public class SelectorHelper implements IMMOExecutor, IClientFacto } @Override - public boolean accept(SocketChannel sc) throws UnknownHostException + public boolean accept(SocketChannel sc) { return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java index afa58be791..a0b2f52439 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver.network.mmocore; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; /** @@ -24,5 +23,5 @@ import java.nio.channels.SocketChannel; */ public interface IAcceptFilter { - boolean accept(SocketChannel sc) throws UnknownHostException; + boolean accept(SocketChannel sc); } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginController.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginController.java index b7865426f2..9601b005b8 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginController.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginController.java @@ -323,21 +323,39 @@ public class LoginController _bannedIps.putIfAbsent(address, System.currentTimeMillis() + duration); } - public boolean isBannedAddress(InetAddress address) throws UnknownHostException + public boolean isBannedAddress(InetAddress address) { final String[] parts = address.getHostAddress().split("\\."); Long bi = _bannedIps.get(address); if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + } + catch (UnknownHostException e) + { + } } if (bi != null) { diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/SelectorHelper.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/SelectorHelper.java index 551816b583..fd2418e86f 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/SelectorHelper.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/SelectorHelper.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -60,7 +59,7 @@ public class SelectorHelper implements IMMOExecutor, IClientFacto } @Override - public boolean accept(SocketChannel sc) throws UnknownHostException + public boolean accept(SocketChannel sc) { return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java index afa58be791..a0b2f52439 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver.network.mmocore; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; /** @@ -24,5 +23,5 @@ import java.nio.channels.SocketChannel; */ public interface IAcceptFilter { - boolean accept(SocketChannel sc) throws UnknownHostException; + boolean accept(SocketChannel sc); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginController.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginController.java index 2a1b21b9d0..529f0e3b21 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginController.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginController.java @@ -321,28 +321,50 @@ public class LoginController _bannedIps.putIfAbsent(address, System.currentTimeMillis() + duration); } - public boolean isBannedAddress(InetAddress address) throws UnknownHostException + public boolean isBannedAddress(InetAddress address) { final String[] parts = address.getHostAddress().split("\\."); - Long bi = _bannedIps.get(address) == null ? _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")) : _bannedIps.get(address); + Long bi = _bannedIps.get(address); if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - return false; + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + } + catch (UnknownHostException e) + { + } } - if ((bi <= 0) || (bi >= System.currentTimeMillis())) + if (bi != null) { + if ((bi > 0) && (bi < System.currentTimeMillis())) + { + _bannedIps.remove(address); + _log.info("Removed expired ip address ban " + address.getHostAddress() + "."); + return false; + } return true; } - _bannedIps.remove(address); - _log.info("Removed expired ip address ban " + address.getHostAddress() + "."); return false; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/SelectorHelper.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/SelectorHelper.java index 547c878712..328deb5e8a 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/SelectorHelper.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/SelectorHelper.java @@ -16,12 +16,10 @@ */ package com.l2jmobius.loginserver; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; import com.l2jmobius.commons.mmocore.IAcceptFilter; import com.l2jmobius.commons.mmocore.IClientFactory; @@ -37,13 +35,12 @@ import com.l2jmobius.util.IPv4Filter; */ public class SelectorHelper implements IMMOExecutor, IClientFactory, IAcceptFilter { - private static final Logger LOG = Logger.getLogger(LoginController.class.getName()); private final ThreadPoolExecutor _generalPacketsThreadPool; private final IPv4Filter _ipv4filter; public SelectorHelper() { - _generalPacketsThreadPool = new ThreadPoolExecutor(4, 6, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue()); + _generalPacketsThreadPool = new ThreadPoolExecutor(4, 6, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); _ipv4filter = new IPv4Filter(); } @@ -64,14 +61,6 @@ public class SelectorHelper implements IMMOExecutor, IClientFacto @Override public boolean accept(SocketChannel sc) { - try - { - return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); - } - catch (UnknownHostException e) - { - LOG.severe(SelectorHelper.class.getSimpleName() + ": Invalid address: " + sc.socket().getInetAddress() + "; " + e.getMessage()); - } - return false; + return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginController.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginController.java index b7865426f2..9601b005b8 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginController.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginController.java @@ -323,21 +323,39 @@ public class LoginController _bannedIps.putIfAbsent(address, System.currentTimeMillis() + duration); } - public boolean isBannedAddress(InetAddress address) throws UnknownHostException + public boolean isBannedAddress(InetAddress address) { final String[] parts = address.getHostAddress().split("\\."); Long bi = _bannedIps.get(address); if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + "." + parts[2] + ".0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + "." + parts[1] + ".0.0")); + } + catch (UnknownHostException e) + { + } } if (bi == null) { - bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + try + { + bi = _bannedIps.get(InetAddress.getByName(parts[0] + ".0.0.0")); + } + catch (UnknownHostException e) + { + } } if (bi != null) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/SelectorHelper.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/SelectorHelper.java index 551816b583..fd2418e86f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/SelectorHelper.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/SelectorHelper.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -60,7 +59,7 @@ public class SelectorHelper implements IMMOExecutor, IClientFacto } @Override - public boolean accept(SocketChannel sc) throws UnknownHostException + public boolean accept(SocketChannel sc) { return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java index afa58be791..a0b2f52439 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/mmocore/IAcceptFilter.java @@ -16,7 +16,6 @@ */ package com.l2jmobius.loginserver.network.mmocore; -import java.net.UnknownHostException; import java.nio.channels.SocketChannel; /** @@ -24,5 +23,5 @@ import java.nio.channels.SocketChannel; */ public interface IAcceptFilter { - boolean accept(SocketChannel sc) throws UnknownHostException; + boolean accept(SocketChannel sc); }