|
@@ -16,7 +16,7 @@ LoginServer::LoginServer( InitDatei *zIni )
|
|
|
empfangen = 0;
|
|
empfangen = 0;
|
|
|
gesendet = 0;
|
|
gesendet = 0;
|
|
|
fehler = new Text();
|
|
fehler = new Text();
|
|
|
- ini = zIni->getThis();
|
|
|
|
|
|
|
+ ini = dynamic_cast<InitDatei *>( zIni->getThis() );
|
|
|
id = *zIni->zWert( "ServerId" );
|
|
id = *zIni->zWert( "ServerId" );
|
|
|
server = new Server();
|
|
server = new Server();
|
|
|
aServer = new SSLServer();
|
|
aServer = new SSLServer();
|
|
@@ -65,13 +65,13 @@ void LoginServer::runn()
|
|
|
if( end && klient )
|
|
if( end && klient )
|
|
|
{
|
|
{
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (SSLSKlient *)klient->release();
|
|
|
Sleep( 1000 );
|
|
Sleep( 1000 );
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if( !klient )
|
|
if( !klient )
|
|
|
continue;
|
|
continue;
|
|
|
- LSAKlient * clHandle = new LSAKlient( klient, (LoginServer *)getThis() );
|
|
|
|
|
|
|
+ LSAKlient *clHandle = new LSAKlient( klient, dynamic_cast<LoginServer *>( getThis() ) );
|
|
|
clHandle->start();
|
|
clHandle->start();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -85,7 +85,7 @@ void LoginServer::thread()
|
|
|
if( !klient )
|
|
if( !klient )
|
|
|
continue;
|
|
continue;
|
|
|
Framework::getThreadRegister()->cleanUpClosedThreads();
|
|
Framework::getThreadRegister()->cleanUpClosedThreads();
|
|
|
- LSKlient * clHandle = new LSKlient( klient, (LoginServer *)getThis() );
|
|
|
|
|
|
|
+ LSKlient *clHandle = new LSKlient( klient, dynamic_cast<LoginServer *>( getThis() ) );
|
|
|
EnterCriticalSection( &cs );
|
|
EnterCriticalSection( &cs );
|
|
|
klients->set( clHandle, klientAnzahl );
|
|
klients->set( clHandle, klientAnzahl );
|
|
|
klientAnzahl++;
|
|
klientAnzahl++;
|
|
@@ -104,13 +104,13 @@ void LoginServer::close()
|
|
|
EnterCriticalSection( &cs );
|
|
EnterCriticalSection( &cs );
|
|
|
for( int i = 0; i < klientAnzahl; i++ )
|
|
for( int i = 0; i < klientAnzahl; i++ )
|
|
|
klients->z( i )->absturz();
|
|
klients->z( i )->absturz();
|
|
|
- klients = klients->release();
|
|
|
|
|
|
|
+ klients = ( RCArray<LSKlient>* )klients->release();
|
|
|
klientAnzahl = 0;
|
|
klientAnzahl = 0;
|
|
|
LeaveCriticalSection( &cs );
|
|
LeaveCriticalSection( &cs );
|
|
|
ende();
|
|
ende();
|
|
|
run = 0;
|
|
run = 0;
|
|
|
end = 1;
|
|
end = 1;
|
|
|
- Klient * klient = new Klient();
|
|
|
|
|
|
|
+ Klient *klient = new Klient();
|
|
|
klient->verbinde( aServer->getPort(), "127.0.0.1" );
|
|
klient->verbinde( aServer->getPort(), "127.0.0.1" );
|
|
|
Sleep( 500 );
|
|
Sleep( 500 );
|
|
|
aServer->trenne();
|
|
aServer->trenne();
|
|
@@ -223,7 +223,7 @@ bool LoginServer::absturzKlient( int klientId )
|
|
|
return gefunden;
|
|
return gefunden;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-bool LoginServer::removeKlient( LSKlient * zKlient )
|
|
|
|
|
|
|
+bool LoginServer::removeKlient( LSKlient *zKlient )
|
|
|
{
|
|
{
|
|
|
bool gefunden = 0;
|
|
bool gefunden = 0;
|
|
|
EnterCriticalSection( &cs );
|
|
EnterCriticalSection( &cs );
|
|
@@ -285,7 +285,7 @@ char *LoginServer::getLetzterFehler() const
|
|
|
|
|
|
|
|
// Inhalt der LSAKlient Klasse aus LoginServer.h
|
|
// Inhalt der LSAKlient Klasse aus LoginServer.h
|
|
|
// Konstruktor
|
|
// Konstruktor
|
|
|
-LSAKlient::LSAKlient( SSLSKlient * klient, LoginServer * ls )
|
|
|
|
|
|
|
+LSAKlient::LSAKlient( SSLSKlient *klient, LoginServer *ls )
|
|
|
: Thread()
|
|
: Thread()
|
|
|
{
|
|
{
|
|
|
this->klient = klient;
|
|
this->klient = klient;
|
|
@@ -324,13 +324,13 @@ void LSAKlient::thread()
|
|
|
{
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
klient->sende( "\1", 1 );
|
|
|
unsigned char nLen = 0;
|
|
unsigned char nLen = 0;
|
|
|
- klient->getNachricht( (char *)& nLen, 1 );
|
|
|
|
|
|
|
+ klient->getNachricht( (char *)&nLen, 1 );
|
|
|
char *n = new char[ nLen + 1 ];
|
|
char *n = new char[ nLen + 1 ];
|
|
|
n[ (int)nLen ] = 0;
|
|
n[ (int)nLen ] = 0;
|
|
|
if( nLen )
|
|
if( nLen )
|
|
|
klient->getNachricht( n, nLen );
|
|
klient->getNachricht( n, nLen );
|
|
|
unsigned char pLen = 0;
|
|
unsigned char pLen = 0;
|
|
|
- klient->getNachricht( (char *)& pLen, 1 );
|
|
|
|
|
|
|
+ klient->getNachricht( (char *)&pLen, 1 );
|
|
|
char *p = new char[ pLen + 1 ];
|
|
char *p = new char[ pLen + 1 ];
|
|
|
p[ (int)pLen ] = 0;
|
|
p[ (int)pLen ] = 0;
|
|
|
if( pLen )
|
|
if( pLen )
|
|
@@ -426,7 +426,7 @@ void LSAKlient::thread()
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
ok = 1;
|
|
ok = 1;
|
|
|
- if( ok &&ls->hatClients() )
|
|
|
|
|
|
|
+ if( ok && ls->hatClients() )
|
|
|
{
|
|
{
|
|
|
errorZuKlient( "Es sind noch Klients Online. Bitte versuche es später erneut." );
|
|
errorZuKlient( "Es sind noch Klients Online. Bitte versuche es später erneut." );
|
|
|
break;
|
|
break;
|
|
@@ -522,7 +522,7 @@ void LSAKlient::thread()
|
|
|
{
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
klient->sende( "\1", 1 );
|
|
|
int maxC = 0;
|
|
int maxC = 0;
|
|
|
- klient->getNachricht( (char *)& maxC, 4 );
|
|
|
|
|
|
|
+ klient->getNachricht( (char *)&maxC, 4 );
|
|
|
if( ls->zDB()->adminHatRecht( adminId, Admin_Recht::LSMCChange ) )
|
|
if( ls->zDB()->adminHatRecht( adminId, Admin_Recht::LSMCChange ) )
|
|
|
{
|
|
{
|
|
|
if( ls->setMaxKlients( maxC ) )
|
|
if( ls->setMaxKlients( maxC ) )
|
|
@@ -544,8 +544,8 @@ void LSAKlient::thread()
|
|
|
{
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
klient->sende( "\1", 1 );
|
|
|
int klientId = 0;
|
|
int klientId = 0;
|
|
|
- klient->getNachricht( (char *)& klientId, 4 );
|
|
|
|
|
- if( klientId &&ls->absturzKlient( klientId ) )
|
|
|
|
|
|
|
+ klient->getNachricht( (char *)&klientId, 4 );
|
|
|
|
|
+ if( klientId && ls->absturzKlient( klientId ) )
|
|
|
klient->sende( "\1", 1 );
|
|
klient->sende( "\1", 1 );
|
|
|
else
|
|
else
|
|
|
klient->sende( "\0", 1 );
|
|
klient->sende( "\0", 1 );
|
|
@@ -577,7 +577,7 @@ void LSAKlient::errorZuKlient( const char *nachricht ) const // sendet eine Fehl
|
|
|
|
|
|
|
|
// Inhalt der LSKlient aus LoginServer.h
|
|
// Inhalt der LSKlient aus LoginServer.h
|
|
|
// Konstruktor
|
|
// Konstruktor
|
|
|
-LSKlient::LSKlient( SKlient * klient, LoginServer * ls )
|
|
|
|
|
|
|
+LSKlient::LSKlient( SKlient *klient, LoginServer *ls )
|
|
|
: Thread()
|
|
: Thread()
|
|
|
{
|
|
{
|
|
|
this->klient = klient;
|
|
this->klient = klient;
|
|
@@ -586,7 +586,6 @@ LSKlient::LSKlient( SKlient * klient, LoginServer * ls )
|
|
|
klient->setEmpfangKey( (char *)key, 20 );
|
|
klient->setEmpfangKey( (char *)key, 20 );
|
|
|
klientNummer = 0;
|
|
klientNummer = 0;
|
|
|
this->ls = ls;
|
|
this->ls = ls;
|
|
|
- ref = 1;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -617,7 +616,7 @@ void LSKlient::thread()
|
|
|
switch( c )
|
|
switch( c )
|
|
|
{
|
|
{
|
|
|
case 1: // Klient identifikation
|
|
case 1: // Klient identifikation
|
|
|
- klient->getNachrichtEncrypted( (char *)& klientNummer, 4 );
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&klientNummer, 4 );
|
|
|
if( !ls->zDB()->proveKlient( klientNummer, ls->getId() ) )
|
|
if( !ls->zDB()->proveKlient( klientNummer, ls->getId() ) )
|
|
|
{
|
|
{
|
|
|
klientNummer = 0;
|
|
klientNummer = 0;
|
|
@@ -648,8 +647,8 @@ void LSKlient::thread()
|
|
|
if( 1 )
|
|
if( 1 )
|
|
|
{
|
|
{
|
|
|
int klientId = 0;
|
|
int klientId = 0;
|
|
|
- klient->getNachrichtEncrypted( (char *)& klientId, 4 );
|
|
|
|
|
- if( klientId &&ls->absturzKlient( klientId ) )
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&klientId, 4 );
|
|
|
|
|
+ if( klientId && ls->absturzKlient( klientId ) )
|
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
|
else
|
|
else
|
|
|
klient->sendeEncrypted( "\0", 1 );
|
|
klient->sendeEncrypted( "\0", 1 );
|
|
@@ -684,11 +683,11 @@ void LSKlient::thread()
|
|
|
}
|
|
}
|
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
|
unsigned char byte = 0;
|
|
unsigned char byte = 0;
|
|
|
- klient->getNachrichtEncrypted( (char *)& byte, 1 );
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&byte, 1 );
|
|
|
char *name = new char[ byte + 1 ];
|
|
char *name = new char[ byte + 1 ];
|
|
|
name[ byte ] = 0;
|
|
name[ byte ] = 0;
|
|
|
klient->getNachrichtEncrypted( name, byte );
|
|
klient->getNachrichtEncrypted( name, byte );
|
|
|
- klient->getNachrichtEncrypted( (char *)& byte, 1 );
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&byte, 1 );
|
|
|
char *passwort = new char[ byte + 1 ];
|
|
char *passwort = new char[ byte + 1 ];
|
|
|
passwort[ byte ] = 0;
|
|
passwort[ byte ] = 0;
|
|
|
klient->getNachrichtEncrypted( passwort, byte );
|
|
klient->getNachrichtEncrypted( passwort, byte );
|
|
@@ -764,13 +763,13 @@ void LSKlient::thread()
|
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
|
unsigned char klientLocIp[ 4 ];
|
|
unsigned char klientLocIp[ 4 ];
|
|
|
klient->getNachrichtEncrypted( (char *)klientLocIp, 4 );
|
|
klient->getNachrichtEncrypted( (char *)klientLocIp, 4 );
|
|
|
- klient->getNachrichtEncrypted( (char *)& byte, 1 );
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&byte, 1 );
|
|
|
char *pcName = new char[ byte + 1 ];
|
|
char *pcName = new char[ byte + 1 ];
|
|
|
pcName[ byte ] = 0;
|
|
pcName[ byte ] = 0;
|
|
|
klient->getNachrichtEncrypted( pcName, byte );
|
|
klient->getNachrichtEncrypted( pcName, byte );
|
|
|
ls->zDB()->accountOnline( accountId, (char *)klient->getIp(), klientLocIp, pcName );
|
|
ls->zDB()->accountOnline( accountId, (char *)klient->getIp(), klientLocIp, pcName );
|
|
|
delete[]pcName;
|
|
delete[]pcName;
|
|
|
- klient->sendeEncrypted( (char *)& accountId, 4 );
|
|
|
|
|
|
|
+ klient->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -785,7 +784,7 @@ void LSKlient::thread()
|
|
|
}
|
|
}
|
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
klient->sendeEncrypted( "\1", 1 );
|
|
|
int accountId = 0;
|
|
int accountId = 0;
|
|
|
- klient->getNachrichtEncrypted( (char *)& accountId, 4 );
|
|
|
|
|
|
|
+ klient->getNachrichtEncrypted( (char *)&accountId, 4 );
|
|
|
Array< int > *ret = new Array< int >();
|
|
Array< int > *ret = new Array< int >();
|
|
|
int anzahl = ls->zDB()->logoutKlient( klientNummer, ret );
|
|
int anzahl = ls->zDB()->logoutKlient( klientNummer, ret );
|
|
|
if( anzahl > 0 )
|
|
if( anzahl > 0 )
|
|
@@ -799,12 +798,12 @@ void LSKlient::thread()
|
|
|
jetzt++;
|
|
jetzt++;
|
|
|
if( chatroomId )
|
|
if( chatroomId )
|
|
|
{
|
|
{
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->spielerLeavesChatroom( chatroomId, accountId );
|
|
weiter->spielerLeavesChatroom( chatroomId, accountId );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
if( ret->get( jetzt ) )
|
|
if( ret->get( jetzt ) )
|
|
|
{
|
|
{
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->setChatroomAdmin( chatroomId, ls->zDB()->getChatroomAdmin( chatroomId ) );
|
|
weiter->setChatroomAdmin( chatroomId, ls->zDB()->getChatroomAdmin( chatroomId ) );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
}
|
|
}
|
|
@@ -814,7 +813,7 @@ void LSKlient::thread()
|
|
|
if( ret->get( jetzt ) == 1 )
|
|
if( ret->get( jetzt ) == 1 )
|
|
|
{
|
|
{
|
|
|
jetzt++;
|
|
jetzt++;
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->spielErstelltAbbrechen( ret->get( jetzt ) );
|
|
weiter->spielErstelltAbbrechen( ret->get( jetzt ) );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
}
|
|
}
|
|
@@ -823,13 +822,13 @@ void LSKlient::thread()
|
|
|
{
|
|
{
|
|
|
jetzt++;
|
|
jetzt++;
|
|
|
int gruppeId = ret->get( jetzt );
|
|
int gruppeId = ret->get( jetzt );
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->spielerLeavesGruppe( gruppeId, accountId );
|
|
weiter->spielerLeavesGruppe( gruppeId, accountId );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
jetzt++;
|
|
jetzt++;
|
|
|
if( ret->get( jetzt ) )
|
|
if( ret->get( jetzt ) )
|
|
|
{
|
|
{
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->setGruppeAdmin( gruppeId, ls->zDB()->getGruppeAdmin( gruppeId ) );
|
|
weiter->setGruppeAdmin( gruppeId, ls->zDB()->getGruppeAdmin( gruppeId ) );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
}
|
|
}
|
|
@@ -838,7 +837,7 @@ void LSKlient::thread()
|
|
|
{
|
|
{
|
|
|
jetzt++;
|
|
jetzt++;
|
|
|
int gruppeId = ret->get( jetzt );
|
|
int gruppeId = ret->get( jetzt );
|
|
|
- MSGWeiterleitung *weiter = new MSGWeiterleitung( (LoginServer *)ls->getThis() );
|
|
|
|
|
|
|
+ MSGWeiterleitung *weiter = new MSGWeiterleitung( dynamic_cast<LoginServer *>( ls->getThis() ) );
|
|
|
weiter->kickSpielerAusGruppe( gruppeId );
|
|
weiter->kickSpielerAusGruppe( gruppeId );
|
|
|
weiter->release();
|
|
weiter->release();
|
|
|
}
|
|
}
|
|
@@ -895,10 +894,10 @@ int LSKlient::getKlientNummer() const // gibt die KlientId zur
|
|
|
|
|
|
|
|
// Inhalt der MSGWeiterleitung Klasse aus LoginServer.h
|
|
// Inhalt der MSGWeiterleitung Klasse aus LoginServer.h
|
|
|
// Konstruktor
|
|
// Konstruktor
|
|
|
-MSGWeiterleitung::MSGWeiterleitung( LoginServer * ls )
|
|
|
|
|
|
|
+MSGWeiterleitung::MSGWeiterleitung( LoginServer *ls )
|
|
|
|
|
+ : ReferenceCounter()
|
|
|
{
|
|
{
|
|
|
this->ls = ls;
|
|
this->ls = ls;
|
|
|
- ref = 1;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -926,7 +925,7 @@ bool MSGWeiterleitung::spielErstelltAbbrechen( int spielErstelltId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& spielErstelltId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&spielErstelltId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
@@ -936,7 +935,7 @@ bool MSGWeiterleitung::spielErstelltAbbrechen( int spielErstelltId )
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
ip->release();
|
|
ip->release();
|
|
|
}
|
|
}
|
|
|
return ret;
|
|
return ret;
|
|
@@ -952,7 +951,7 @@ bool MSGWeiterleitung::spielerLeavesGruppe( int gruppeId, int accountId )
|
|
|
int account = accId->get( i );
|
|
int account = accId->get( i );
|
|
|
if( account == accountId )
|
|
if( account == accountId )
|
|
|
continue;
|
|
continue;
|
|
|
- Text * ip = new Text( "" );
|
|
|
|
|
|
|
+ Text *ip = new Text( "" );
|
|
|
unsigned short port = 0;
|
|
unsigned short port = 0;
|
|
|
ret = ret & ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
ret = ret & ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
|
if( ip->getLength() )
|
|
if( ip->getLength() )
|
|
@@ -967,9 +966,9 @@ bool MSGWeiterleitung::spielerLeavesGruppe( int gruppeId, int accountId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& account, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& accountId, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& gruppeId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&account, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&gruppeId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
@@ -978,15 +977,15 @@ bool MSGWeiterleitung::spielerLeavesGruppe( int gruppeId, int accountId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& account, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& gruppeId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&account, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&gruppeId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
}
|
|
}
|
|
|
ip->release();
|
|
ip->release();
|
|
|
}
|
|
}
|
|
@@ -999,7 +998,7 @@ bool MSGWeiterleitung::setGruppeAdmin( int gruppeId, int adminId )
|
|
|
if( !adminId || !gruppeId )
|
|
if( !adminId || !gruppeId )
|
|
|
return 0;
|
|
return 0;
|
|
|
bool ret = 1;
|
|
bool ret = 1;
|
|
|
- Array< int > * accId = new Array< int >();
|
|
|
|
|
|
|
+ Array< int > *accId = new Array< int >();
|
|
|
int anzahl = ls->zDB()->getSpielerAusGruppe( gruppeId, accId );
|
|
int anzahl = ls->zDB()->getSpielerAusGruppe( gruppeId, accId );
|
|
|
for( int i = 0; i < anzahl; i++ )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
|
{
|
|
{
|
|
@@ -1019,16 +1018,16 @@ bool MSGWeiterleitung::setGruppeAdmin( int gruppeId, int adminId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& account, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& adminId, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& gruppeId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&account, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&adminId, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&gruppeId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
}
|
|
}
|
|
|
ip->release();
|
|
ip->release();
|
|
|
}
|
|
}
|
|
@@ -1046,7 +1045,7 @@ bool MSGWeiterleitung::spielerLeavesChatroom( int chatroomId, int accountId )
|
|
|
int account = accId->get( i );
|
|
int account = accId->get( i );
|
|
|
if( account == accountId )
|
|
if( account == accountId )
|
|
|
continue;
|
|
continue;
|
|
|
- Text * ip = new Text( "" );
|
|
|
|
|
|
|
+ Text *ip = new Text( "" );
|
|
|
unsigned short port = 0;
|
|
unsigned short port = 0;
|
|
|
ret = ret & ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
ret = ret & ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
|
if( ip->getLength() )
|
|
if( ip->getLength() )
|
|
@@ -1061,16 +1060,16 @@ bool MSGWeiterleitung::spielerLeavesChatroom( int chatroomId, int accountId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& accountId, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& account, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& chatroomId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&account, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&chatroomId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
}
|
|
}
|
|
|
ip->release();
|
|
ip->release();
|
|
|
}
|
|
}
|
|
@@ -1083,7 +1082,7 @@ bool MSGWeiterleitung::setChatroomAdmin( int chatroomId, int adminId )
|
|
|
if( !adminId || !chatroomId )
|
|
if( !adminId || !chatroomId )
|
|
|
return 0;
|
|
return 0;
|
|
|
bool ret = 1;
|
|
bool ret = 1;
|
|
|
- Text * ip = new Text( "" );
|
|
|
|
|
|
|
+ Text *ip = new Text( "" );
|
|
|
unsigned short port = 0;
|
|
unsigned short port = 0;
|
|
|
ret = ret & ls->zDB()->getChatServerPortIp( adminId, &port, ip );
|
|
ret = ret & ls->zDB()->getChatServerPortIp( adminId, &port, ip );
|
|
|
if( ip->getLength() )
|
|
if( ip->getLength() )
|
|
@@ -1098,15 +1097,15 @@ bool MSGWeiterleitung::setChatroomAdmin( int chatroomId, int adminId )
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& adminId, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& chatroomId, 4 );
|
|
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&adminId, 4 );
|
|
|
|
|
+ ret = ret & klient->sendeEncrypted( (char *)&chatroomId, 4 );
|
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
}
|
|
}
|
|
|
ip->release();
|
|
ip->release();
|
|
|
return ret;
|
|
return ret;
|
|
@@ -1117,56 +1116,39 @@ bool MSGWeiterleitung::kickSpielerAusGruppe( int gruppeId )
|
|
|
if( !gruppeId )
|
|
if( !gruppeId )
|
|
|
return 0;
|
|
return 0;
|
|
|
bool ret = 1;
|
|
bool ret = 1;
|
|
|
- Array< int > * accId = new Array< int >();
|
|
|
|
|
|
|
+ Array< int > *accId = new Array< int >();
|
|
|
int anzahl = ls->zDB()->getSpielerAusGruppe( gruppeId, accId );
|
|
int anzahl = ls->zDB()->getSpielerAusGruppe( gruppeId, accId );
|
|
|
for( int i = 0; i < anzahl; i++ )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
|
{
|
|
{
|
|
|
int account = accId->get( i );
|
|
int account = accId->get( i );
|
|
|
Text *ip = new Text( "" );
|
|
Text *ip = new Text( "" );
|
|
|
unsigned short port = 0;
|
|
unsigned short port = 0;
|
|
|
- ret = ret & ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
|
|
|
|
|
+ ret = ret && ls->zDB()->getChatServerPortIp( account, &port, ip );
|
|
|
if( ip->getLength() )
|
|
if( ip->getLength() )
|
|
|
{
|
|
{
|
|
|
Klient *klient = new Klient();
|
|
Klient *klient = new Klient();
|
|
|
unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
|
|
unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
|
|
|
klient->setSendeKey( (char *)key, 20 );
|
|
klient->setSendeKey( (char *)key, 20 );
|
|
|
klient->setEmpfangKey( (char *)key, 20 );
|
|
klient->setEmpfangKey( (char *)key, 20 );
|
|
|
- ret = ret & klient->verbinde( port, ip->getText() );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( "\5\x16", 2 );
|
|
|
|
|
|
|
+ ret = ret && klient->verbinde( port, ip->getText() );
|
|
|
|
|
+ ret = ret && klient->sendeEncrypted( "\5\x16", 2 );
|
|
|
char res = 0;
|
|
char res = 0;
|
|
|
- ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
|
|
|
|
+ ret = ret && klient->getNachrichtEncrypted( &res, 1 );
|
|
|
if( res )
|
|
if( res )
|
|
|
{
|
|
{
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& account, 4 );
|
|
|
|
|
- ret = ret & klient->sendeEncrypted( (char *)& gruppeId, 4 );
|
|
|
|
|
- ret = ret & klient->getNachrichtEncrypted( &res, 1 );
|
|
|
|
|
|
|
+ ret = ret && klient->sendeEncrypted( (char *)&account, 4 );
|
|
|
|
|
+ ret = ret && klient->sendeEncrypted( (char *)&gruppeId, 4 );
|
|
|
|
|
+ ret = ret && klient->getNachrichtEncrypted( &res, 1 );
|
|
|
}
|
|
}
|
|
|
ret = (char)ret & res;
|
|
ret = (char)ret & res;
|
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
ls->addEmpfangen( klient->getDownloadBytes( 1 ) );
|
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
ls->addGesendet( klient->getUploadBytes( 1 ) );
|
|
|
klient->trenne();
|
|
klient->trenne();
|
|
|
- klient = klient->release();
|
|
|
|
|
|
|
+ klient = (Klient *)klient->release();
|
|
|
}
|
|
}
|
|
|
ls->zDB()->kickSpielerAusGruppe( gruppeId, account );
|
|
ls->zDB()->kickSpielerAusGruppe( gruppeId, account );
|
|
|
ip->release();
|
|
ip->release();
|
|
|
}
|
|
}
|
|
|
accId->release();
|
|
accId->release();
|
|
|
return ret;
|
|
return ret;
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-// constant
|
|
|
|
|
-
|
|
|
|
|
-// Reference Counting
|
|
|
|
|
-MSGWeiterleitung *MSGWeiterleitung::getThis()
|
|
|
|
|
-{
|
|
|
|
|
- ref++;
|
|
|
|
|
- return this;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-MSGWeiterleitung *MSGWeiterleitung::release()
|
|
|
|
|
-{
|
|
|
|
|
- ref--;
|
|
|
|
|
- if( !ref )
|
|
|
|
|
- delete this;
|
|
|
|
|
- return 0;
|
|
|
|
|
}
|
|
}
|