Jump to content
  • 0

Double Login Session Bug.


Question

10 answers to this question

Recommended Posts

  • 0
Posted

Thanks guys, altough I dont know how to apply that bugg i must find some1 to check it . 

I will post feedback soon

/THanks :D

  • 0
Posted

After reconnect to server character cant be load... Bad fix... Please give someone normal fix of this bug..

  • 0
Posted (edited)

SweeTs with this fix, after one login in your char ,and logout you cant login again in your char... Something bad in this code..  I cant find good fix... Im added this... Its good with login, logout... But bugg is still working. Maybe someone know where in there can be mistake ? :(

    public boolean addGameServerLogin(String account, L2GameClient client)  {
        
           L2GameClient savedClient = _accountsInGameServer.get(account);
          
                   if (savedClient != null) {
                   if (savedClient.isDetached()) {
                   if (Config.DEBUG)
                   _log.info("Old Client was disconnected: Offline or OfflineMode --> Login Again");
                   ((FastMap<String, L2GameClient>) _accountsInGameServer).put(account, client);
                   return true;
                   }
                   if (Config.DEBUG)
                   _log.info("Old Client was online --> Close Old Client Connection");
                   savedClient.closeNow();
                   _accountsInGameServer.remove(account);
                   return false;
                   }
                   if (Config.DEBUG)
                   _log.info("Client was not online --> New Client Connection");
                   ((FastMap<String, L2GameClient>) _accountsInGameServer).put(account, client);
                   return true;
                   }
}





    L2GameClient savedClient = _accountsInGameServer.get(account);

    if (savedClient != null) {
        if (savedClient.isDetached()) {
            _log.info("Old Client was disconnected: Offline or OfflineMode --> Login Again [Account: " + account + "]");
            ((FastMap<String, L2GameClient>) _accountsInGameServer).put(
                    account, client);
            return true;
        } else {
            _log.info("Old Client was online --> Close Old Client Connection [Account: " + account + "]");
            savedClient.closeNow();
            _accountsInGameServer.remove(account);
            return false;
        }
    } else {
        _log.info("Client was not online --> New Client Connection [Account: " + account + "]");
        ((FastMap<String, L2GameClient>) _accountsInGameServer).put(
                account, client);
        return true;
    }





IN THIS CODE "ELSE" anything mean or no ? Becouse with else i get yellow code... ???

Edited by koksas
  • 0
Posted (edited)

authlogin founded in l2jserver

// avoid potential exploits
if (client.getAccountName() == null)
{
 // Preventing duplicate login in case client login server socket was disconnected or this packet was not sent yet
if (LoginServerThread.getInstance().addGameServerLogin(_loginName, client))
{
 client.setAccountName(_loginName);
 LoginServerThread.getInstance().addWaitingClientAndSendRequest(_loginName, client, key);
}
else
{
 client.close((L2GameServerPacket) null);
 }

+    public boolean addGameServerLogin(String account, L2GameClient client) {
+
+        L2GameClient savedClient = _accountsInGameServer.get(account);
+
+        if (savedClient != null) {
+            if (savedClient.isDetached()) {
+                LOGGER.debug("Old Client was disconnected: Offline or OfflineMode --> Login Again [Account: " + account + "]");
+                ((FastMap<String, L2GameClient>) _accountsInGameServer).put(
+                        account, client);
+                return true;
+            } else {
+                LOGGER.debug("Old Client was online --> Close Old Client Connection [Account: " + account + "]");
+                savedClient.closeNow();
+                _accountsInGameServer.remove(account);
+                return false;
+            }
+        } else {
+            LOGGER.debug("Client was not online --> New Client Connection [Account: " + account + "]");
+            ((FastMap<String, L2GameClient>) _accountsInGameServer).put(
+                    account, client);
+            return true;
+        }
+    }

well i found this in the gta version of frozen.. i dont have idea if this works

 

 

also this 

public boolean addGameServerLogin(String account, L2GameClient client) 
 { 
 return _accountsInGameServer.putIfAbsent(account, client) == null; 
}
Edited by te0x
Guest
This topic is now closed to further replies.


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock