fixed a potential bug with kicking players during authorization
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40653
This commit is contained in:
		
							parent
							
								
									c6375166a1
								
							
						
					
					
						commit
						c6c4de1f75
					
				@ -118,6 +118,10 @@ void PlayerManager::RunAuthChecks()
 | 
			
		||||
			pPlayer->m_AuthID.assign(authstr);
 | 
			
		||||
			pPlayer->m_IsAuthorized = true;
 | 
			
		||||
 | 
			
		||||
			/* Mark as removed from queue */
 | 
			
		||||
			m_AuthQueue[i] = 0;
 | 
			
		||||
			removed++;
 | 
			
		||||
 | 
			
		||||
			/* Send to extensions */
 | 
			
		||||
			List<IClientListener *>::iterator iter;
 | 
			
		||||
			IClientListener *pListener;
 | 
			
		||||
@ -125,19 +129,20 @@ void PlayerManager::RunAuthChecks()
 | 
			
		||||
			{
 | 
			
		||||
				pListener = (*iter);
 | 
			
		||||
				pListener->OnClientAuthorized(m_AuthQueue[i], authstr);
 | 
			
		||||
				if (!pPlayer->IsConnected())
 | 
			
		||||
				{
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/* Send to plugins */
 | 
			
		||||
			if (m_clauth->GetFunctionCount())
 | 
			
		||||
			/* Send to plugins if player is still connected */
 | 
			
		||||
			if (pPlayer->IsConnected() && m_clauth->GetFunctionCount())
 | 
			
		||||
			{
 | 
			
		||||
				/* :TODO: handle the case of a player disconnecting in the middle */
 | 
			
		||||
				m_clauth->PushCell(m_AuthQueue[i]);
 | 
			
		||||
				m_clauth->PushString(authstr);
 | 
			
		||||
				m_clauth->Execute(NULL);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/* Mark as removed from queue */
 | 
			
		||||
			m_AuthQueue[i] = 0;
 | 
			
		||||
			removed++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user