Advertisement
Guest User

Fix for aCis login issue from server machine

a guest
Jan 22nd, 2021
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.18 KB | None | 0 0
  1. diff --git a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/LoginController.java b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/LoginController.java
  2. index 3268aa3..3a7235f 100644
  3. --- a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/LoginController.java
  4. +++ b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/LoginController.java
  5. @@ -213,6 +213,7 @@ public class LoginController
  6.             return;
  7.         }
  8.        
  9. +       account.setClientIp(addr);
  10.         client.setAccount(account);
  11.         client.setState(LoginClientState.AUTHED_LOGIN);
  12.         client.setSessionKey(new SessionKey(Rnd.nextInt(), Rnd.nextInt(), Rnd.nextInt(), Rnd.nextInt()));
  13. diff --git a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/model/Account.java b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/model/Account.java
  14. index 6c37cea..fb226b5 100644
  15. --- a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/model/Account.java
  16. +++ b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/model/Account.java
  17. @@ -1,5 +1,7 @@
  18.  package net.sf.l2j.loginserver.model;
  19.  
  20. +import java.net.InetAddress;
  21. +
  22.  import net.sf.l2j.commons.network.ServerType;
  23.  
  24.  import net.sf.l2j.loginserver.data.manager.GameServerManager;
  25. @@ -11,6 +13,7 @@ public final class Account
  26.     private final String _password;
  27.     private final int _accessLevel;
  28.     private final int _lastServer;
  29. +   private InetAddress _clientIp;
  30.    
  31.     public Account(final String login, final String password, final int accessLevel, final int lastServer)
  32.     {
  33. @@ -40,6 +43,16 @@ public final class Account
  34.         return _lastServer;
  35.     }
  36.    
  37. +   public InetAddress getClientIp()
  38. +   {
  39. +       return _clientIp;
  40. +   }
  41. +  
  42. +   public void setClientIp(InetAddress addr)
  43. +   {
  44. +       _clientIp = addr;
  45. +   }
  46. +  
  47.     public final boolean isLoginPossible(int serverId)
  48.     {
  49.         final GameServerInfo gsi = GameServerManager.getInstance().getRegisteredGameServers().get(serverId);
  50. diff --git a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/network/serverpackets/ServerList.java b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/network/serverpackets/ServerList.java
  51. index 2738c67..3c022a5 100644
  52. --- a/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/network/serverpackets/ServerList.java
  53. +++ b/Interlude/aCis_gameserver/java/net/sf/l2j/loginserver/network/serverpackets/ServerList.java
  54. @@ -24,13 +24,22 @@ public final class ServerList extends L2LoginServerPacket
  55.        
  56.         for (GameServerInfo gsi : GameServerManager.getInstance().getRegisteredGameServers().values())
  57.         {
  58.             final ServerType type = (account.getAccessLevel() < 0 || (gsi.getType() == ServerType.GM_ONLY && account.getAccessLevel() <= 0)) ? ServerType.DOWN : gsi.getType();
  59. -           final String hostName = gsi.getHostName();
  60. +           final String hostName = isLocalResourceByIp(account.getClientIp()) ? "127.0.0.1" : gsi.getHostName();
  61.            
  62.             _servers.add(new ServerData(type, hostName, gsi));
  63.         }
  64.     }
  65.    
  66. +   public static boolean isLocalResourceByIp(InetAddress address)
  67. +   {
  68. +       if (address == null || address.isLinkLocalAddress() || address.isLoopbackAddress() || address.isAnyLocalAddress() || address.isSiteLocalAddress())
  69. +           return true;
  70. +      
  71. +       return false;
  72. +   }
  73. +  
  74.     @Override
  75.     public void write()
  76.     {
  77. --
  78. 2.10.5
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement