Files correlati : Ricompilazione Demo : [ ] Commento : Migliorie varie sul frontend git-svn-id: svn://10.65.10.50/trunk@7679 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include "StdAfx.h"
 | |
| 
 | |
| #include "connect.h"
 | |
| #include "server.h"
 | |
| 
 | |
| static int CountPeerUser(TConnection& conn, void* pJolly)
 | |
| {
 | |
| 	const CString& strPeerUser = *(CString*)pJolly;
 | |
|   const int at = strPeerUser.Find('@');
 | |
|   const CString strUser = strPeerUser.Left(at);
 | |
| 
 | |
| 	const TPrassiConnection& c = (TPrassiConnection&)conn;
 | |
| 	CString pu = c.User();
 | |
|   if (pu != strUser)
 | |
|     return 0;
 | |
|   
 | |
|   pu += "@";
 | |
|   pu += c.PeerName(); 
 | |
|   return strPeerUser != pu;
 | |
| }
 | |
| 
 | |
| BOOL TPrassiConnection::DoUserLogin(const CString& user, 
 | |
| 									const CString& pwd, 
 | |
| 									const CString& app)
 | |
| {
 | |
| 	BOOL ok = GetServer().SerialNumber() != 0xFFFF;
 | |
| 
 | |
| 	if (ok)
 | |
| 	{
 | |
|     if (user != "******" && user != "GUEST")
 | |
|     {
 | |
|       CString security = GetIniString("Server", "Security", "0");
 | |
|       if (atoi(security) > 0)
 | |
|       {
 | |
|         CString strPeerUser = user; strPeerUser.MakeUpper();
 | |
|         strPeerUser += "@";
 | |
|         strPeerUser += PeerName();
 | |
| 
 | |
| 		    int total = Server().ForEachConnection(CountPeerUser, 
 | |
|                                                (void*)&strPeerUser);
 | |
|         ok = total == 0;
 | |
|       }
 | |
| 		}
 | |
| 
 | |
|     if (ok)
 | |
| 		{
 | |
| 			m_strUser = user; m_strUser.MakeUpper();
 | |
| 			m_strApp = app; m_strApp.MakeUpper();
 | |
| 		}
 | |
| 	}
 | |
| 	return ReturnBool(ok);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // BOOL UserLogin(CString user, CString pwd, CString app)
 | |
| //
 | |
| // Esegue il login dell'utente user con password opzionale
 | |
| 
 | |
| int f_UserLogin(TConnection& conn, void* pJolly)
 | |
| {
 | |
| 	CStringArray& argv = *(CStringArray*)pJolly;
 | |
| 	const int argc = argv.GetSize();
 | |
| 	if (argc > 3)
 | |
| 	{
 | |
|     TPrassiConnection& c = (TPrassiConnection&)conn;
 | |
| 		return c.DoUserLogin(argv[1], argv[2], argv[3]);
 | |
| 	}
 | |
| 	return FALSE;
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // BOOL UserLogout()
 | |
| 
 | |
| int f_UserLogout(TConnection& conn, void* pJolly)
 | |
| {
 | |
| 	return ((TPrassiConnection&)conn).DoUserLogout();
 | |
| }
 | |
| 
 | |
| BOOL TPrassiConnection::DoUserLogout()
 | |
| {
 | |
| 	ReturnBool(TRUE);
 | |
| 	return TRUE;
 | |
| }
 | |
| 
 |