|
@@ -11,7 +11,7 @@
|
|
|
|
|
|
// Inhalt der SpielServer Klasse aus SpielServer.h
|
|
|
// Konstruktor
|
|
|
-SpielServer::SpielServer( InitDatei *zIni )
|
|
|
+SpielServer::SpielServer( InitDatei* zIni )
|
|
|
: Thread()
|
|
|
{
|
|
|
Network::Start( 100 );
|
|
@@ -20,7 +20,7 @@ SpielServer::SpielServer( InitDatei *zIni )
|
|
|
empfangen = 0;
|
|
|
gesendet = 0;
|
|
|
fehler = new Text();
|
|
|
- ini = dynamic_cast<InitDatei *>( zIni->getThis() );
|
|
|
+ ini = dynamic_cast<InitDatei*>(zIni->getThis());
|
|
|
id = *zIni->zWert( "ServerId" );
|
|
|
server = new Server();
|
|
|
aServer = new SSLServer();
|
|
@@ -47,10 +47,6 @@ SpielServer::SpielServer( InitDatei *zIni )
|
|
|
spiele = new RCArray< Spiel >();
|
|
|
klients = new RCArray< SSKlient >();
|
|
|
spielHistorieId = new Array< int >();
|
|
|
- spielErstelltAnzahl = 0;
|
|
|
- spielAnzahl = 0;
|
|
|
- klientAnzahl = 0;
|
|
|
- klientAnzahl2 = 0;
|
|
|
historieS = new HistorieSender( this );
|
|
|
historieS->start();
|
|
|
}
|
|
@@ -93,18 +89,18 @@ void SpielServer::runn()
|
|
|
{
|
|
|
while( !end && aServer->isConnected() )
|
|
|
{
|
|
|
- SSLSKlient *klient;
|
|
|
+ SSLSKlient* klient;
|
|
|
klient = aServer->getKlient();
|
|
|
if( end && klient )
|
|
|
{
|
|
|
klient->trenne();
|
|
|
- klient = (SSLSKlient *)klient->release();
|
|
|
+ klient = (SSLSKlient*)klient->release();
|
|
|
Sleep( 1000 );
|
|
|
return;
|
|
|
}
|
|
|
if( !klient )
|
|
|
continue;
|
|
|
- SSAKlient *slHandle = new SSAKlient( klient, dynamic_cast<SpielServer *>( getThis() ) );
|
|
|
+ SSAKlient* slHandle = new SSAKlient( klient, dynamic_cast<SpielServer*>(getThis()) );
|
|
|
slHandle->start();
|
|
|
}
|
|
|
}
|
|
@@ -113,13 +109,12 @@ void SpielServer::thread()
|
|
|
{
|
|
|
while( server->isConnected() )
|
|
|
{
|
|
|
- SKlient *klient;
|
|
|
+ SKlient* klient;
|
|
|
klient = server->getKlient();
|
|
|
if( !klient )
|
|
|
continue;
|
|
|
Framework::getThreadRegister()->cleanUpClosedThreads();
|
|
|
- SSKlient *slHandle = new SSKlient( klient, dynamic_cast<SpielServer *>( getThis() ) );
|
|
|
- klientAnzahl2++;
|
|
|
+ SSKlient* slHandle = new SSKlient( klient, dynamic_cast<SpielServer*>(getThis()) );
|
|
|
slHandle->start();
|
|
|
}
|
|
|
}
|
|
@@ -132,16 +127,15 @@ void SpielServer::close()
|
|
|
warteAufThread( 1000 );
|
|
|
#endif
|
|
|
lock();
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
klients->z( i )->absturz();
|
|
|
if( klients )
|
|
|
- klients = ( RCArray<SSKlient>* ) klients->release();
|
|
|
- klientAnzahl = 0;
|
|
|
+ klients = (RCArray<SSKlient>*) klients->release();
|
|
|
unlock();
|
|
|
ende();
|
|
|
run = 0;
|
|
|
end = 1;
|
|
|
- Klient *klient = new Klient();
|
|
|
+ Klient* klient = new Klient();
|
|
|
klient->verbinde( aServer->getPort(), "127.0.0.1" );
|
|
|
Sleep( 500 );
|
|
|
aServer->trenne();
|
|
@@ -240,18 +234,17 @@ bool SpielServer::setMaxSpiele( int ms )
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-void SpielServer::addSpielErstellt( SpielErstellt *erstellt )
|
|
|
+void SpielServer::addSpielErstellt( SpielErstellt* erstellt )
|
|
|
{
|
|
|
lock();
|
|
|
- this->erstellt->set( erstellt, spielErstelltAnzahl );
|
|
|
- spielErstelltAnzahl++;
|
|
|
+ this->erstellt->add( erstellt );
|
|
|
unlock();
|
|
|
}
|
|
|
|
|
|
void SpielServer::SpielErstelltAbbruch( int spielErstelltId )
|
|
|
{
|
|
|
lock();
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( erstellt->z( i )->getId() == spielErstelltId )
|
|
|
{
|
|
@@ -266,12 +259,11 @@ void SpielServer::removeSpielErstellt( int id )
|
|
|
{
|
|
|
lock();
|
|
|
bool gefunden = 0;
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( erstellt->z( i )->getId() == id )
|
|
|
{
|
|
|
- spielErstelltAnzahl--;
|
|
|
- SpielErstellt *zse = erstellt->get( i );
|
|
|
+ SpielErstellt* zse = erstellt->get( i );
|
|
|
erstellt->remove( i );
|
|
|
unlock();
|
|
|
zse->release();
|
|
@@ -283,13 +275,13 @@ void SpielServer::removeSpielErstellt( int id )
|
|
|
unlock();
|
|
|
}
|
|
|
|
|
|
-bool SpielServer::registerKlient( SSKlient *klient )
|
|
|
+bool SpielServer::registerKlient( SSKlient* klient )
|
|
|
{
|
|
|
lock();
|
|
|
bool gefunden = 0;
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SSKlient *tmp = klients->z( i );
|
|
|
+ SSKlient* tmp = klients->z( i );
|
|
|
if( tmp )
|
|
|
{
|
|
|
if( tmp->getAccountId() == klient->getAccountId() )
|
|
@@ -304,10 +296,7 @@ bool SpielServer::registerKlient( SSKlient *klient )
|
|
|
}
|
|
|
}
|
|
|
if( !gefunden )
|
|
|
- {
|
|
|
- klients->set( klient, klientAnzahl );
|
|
|
- klientAnzahl++;
|
|
|
- }
|
|
|
+ klients->add( klient );
|
|
|
unlock();
|
|
|
return 0;
|
|
|
}
|
|
@@ -315,8 +304,8 @@ bool SpielServer::registerKlient( SSKlient *klient )
|
|
|
bool SpielServer::absturzKlient( int klientId )
|
|
|
{
|
|
|
lock();
|
|
|
- SSKlient *zKlient = 0;
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ SSKlient* zKlient = 0;
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( klients->z( i )->getKlientNummer() == klientId )
|
|
|
{
|
|
@@ -334,23 +323,23 @@ bool SpielServer::absturzKlient( int klientId )
|
|
|
switch( ak )
|
|
|
{
|
|
|
case 0: // Information Über Verwendung des Klient ist verlorengegangen (überall abmelden)
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SpielErstellt *tmp = erstellt->z( i );
|
|
|
+ SpielErstellt* tmp = erstellt->z( i );
|
|
|
if( tmp )
|
|
|
tmp->klientGetrennt( zKlient );
|
|
|
}
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- Spiel *tmp = spiele->z( i );
|
|
|
+ Spiel* tmp = spiele->z( i );
|
|
|
if( tmp )
|
|
|
tmp->klientGetrennt( zKlient );
|
|
|
}
|
|
|
break;
|
|
|
case 1: // Spiel Erstellt
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SpielErstellt *tmp = erstellt->z( i );
|
|
|
+ SpielErstellt* tmp = erstellt->z( i );
|
|
|
if( tmp )
|
|
|
{
|
|
|
if( tmp->getId() == id )
|
|
@@ -362,9 +351,9 @@ bool SpielServer::absturzKlient( int klientId )
|
|
|
}
|
|
|
break;
|
|
|
case 2: // Spielt
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- Spiel *tmp = spiele->z( i );
|
|
|
+ Spiel* tmp = spiele->z( i );
|
|
|
if( tmp && tmp->getId() == id )
|
|
|
{
|
|
|
tmp->klientGetrennt( zKlient );
|
|
@@ -374,12 +363,11 @@ bool SpielServer::absturzKlient( int klientId )
|
|
|
break;
|
|
|
}
|
|
|
bool gefunden = 0;
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( klients->z( i ) == zKlient )
|
|
|
{
|
|
|
zKlient->absturz();
|
|
|
- klientAnzahl--;
|
|
|
zKlient->getThis();
|
|
|
klients->remove( i );
|
|
|
unlock();
|
|
@@ -393,7 +381,7 @@ bool SpielServer::absturzKlient( int klientId )
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool SpielServer::verteileKlient( SSKlient *klient )
|
|
|
+bool SpielServer::verteileKlient( SSKlient* klient )
|
|
|
{
|
|
|
lock();
|
|
|
int id = 0;
|
|
@@ -405,14 +393,14 @@ bool SpielServer::verteileKlient( SSKlient *klient )
|
|
|
return 0;
|
|
|
break;
|
|
|
case 1: // Spiel Erstellt
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SpielErstellt *tmp = erstellt->z( i );
|
|
|
+ SpielErstellt* tmp = erstellt->z( i );
|
|
|
if( tmp )
|
|
|
{
|
|
|
if( tmp->getId() == id )
|
|
|
{
|
|
|
- tmp->klientVerbunden( dynamic_cast<SSKlient *>( klient->getThis() ) );
|
|
|
+ tmp->klientVerbunden( dynamic_cast<SSKlient*>(klient->getThis()) );
|
|
|
unlock();
|
|
|
return 1;
|
|
|
}
|
|
@@ -420,14 +408,14 @@ bool SpielServer::verteileKlient( SSKlient *klient )
|
|
|
}
|
|
|
break;
|
|
|
case 2: // Spielt
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- Spiel *tmp = spiele->z( i );
|
|
|
+ Spiel* tmp = spiele->z( i );
|
|
|
if( tmp )
|
|
|
{
|
|
|
if( tmp->getId() == id )
|
|
|
{
|
|
|
- tmp->klientVerbunden( dynamic_cast<SSKlient *>( klient->getThis() ) );
|
|
|
+ tmp->klientVerbunden( dynamic_cast<SSKlient*>(klient->getThis()) );
|
|
|
unlock();
|
|
|
return 1;
|
|
|
}
|
|
@@ -439,7 +427,7 @@ bool SpielServer::verteileKlient( SSKlient *klient )
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-void SpielServer::unregisterKlient( SSKlient *zKlient )
|
|
|
+void SpielServer::unregisterKlient( SSKlient* zKlient )
|
|
|
{
|
|
|
lock();
|
|
|
int id = 0;
|
|
@@ -447,23 +435,23 @@ void SpielServer::unregisterKlient( SSKlient *zKlient )
|
|
|
switch( ak )
|
|
|
{
|
|
|
case 0: // Information Über Verwendung des Klient ist verlorengegangen (überall abmelden)
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SpielErstellt *tmp = erstellt->z( i );
|
|
|
+ SpielErstellt* tmp = erstellt->z( i );
|
|
|
if( tmp )
|
|
|
tmp->klientGetrennt( zKlient );
|
|
|
}
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- Spiel *tmp = spiele->z( i );
|
|
|
+ Spiel* tmp = spiele->z( i );
|
|
|
if( tmp )
|
|
|
tmp->klientGetrennt( zKlient );
|
|
|
}
|
|
|
break;
|
|
|
case 1: // Spiel Erstellt
|
|
|
- for( int i = 0; i < spielErstelltAnzahl; i++ )
|
|
|
+ for( int i = 0; i < erstellt->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- SpielErstellt *tmp = erstellt->z( i );
|
|
|
+ SpielErstellt* tmp = erstellt->z( i );
|
|
|
if( tmp )
|
|
|
{
|
|
|
if( tmp->getId() == id )
|
|
@@ -475,9 +463,9 @@ void SpielServer::unregisterKlient( SSKlient *zKlient )
|
|
|
}
|
|
|
break;
|
|
|
case 2: // Spielt
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
- Spiel *tmp = spiele->z( i );
|
|
|
+ Spiel* tmp = spiele->z( i );
|
|
|
if( tmp && tmp->getId() == id )
|
|
|
{
|
|
|
tmp->klientGetrennt( zKlient );
|
|
@@ -487,11 +475,10 @@ void SpielServer::unregisterKlient( SSKlient *zKlient )
|
|
|
break;
|
|
|
}
|
|
|
bool gefunden = 0;
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( klients->z( i ) == zKlient )
|
|
|
{
|
|
|
- klientAnzahl--;
|
|
|
zKlient->getThis();
|
|
|
klients->remove( i );
|
|
|
unlock();
|
|
@@ -507,10 +494,10 @@ void SpielServer::unregisterKlient( SSKlient *zKlient )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void SpielServer::klientsMM( SSKlient *k )
|
|
|
+void SpielServer::klientsMM( SSKlient* k )
|
|
|
{
|
|
|
lock();
|
|
|
- for( int i = 0; i < klientAnzahl; i++ )
|
|
|
+ for( int i = 0; i < klients->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( klients->z( i ) == k )
|
|
|
{
|
|
@@ -520,14 +507,12 @@ void SpielServer::klientsMM( SSKlient *k )
|
|
|
}
|
|
|
}
|
|
|
unlock();
|
|
|
- klientAnzahl2--;
|
|
|
}
|
|
|
|
|
|
-void SpielServer::addSpiel( Spiel *spiel )
|
|
|
+void SpielServer::addSpiel( Spiel* spiel )
|
|
|
{
|
|
|
lock();
|
|
|
- spiele->add( spiel, spielAnzahl );
|
|
|
- spielAnzahl++;
|
|
|
+ spiele->add( spiel );
|
|
|
unlock();
|
|
|
}
|
|
|
|
|
@@ -535,12 +520,11 @@ void SpielServer::removeSpiel( int spielId )
|
|
|
{
|
|
|
lock();
|
|
|
bool gefunden = 0;
|
|
|
- for( int i = 0; i < spielAnzahl; i++ )
|
|
|
+ for( int i = 0; i < spiele->getEintragAnzahl(); i++ )
|
|
|
{
|
|
|
if( spiele->z( i ) && spiele->z( i )->getId() == spielId )
|
|
|
{
|
|
|
- spielAnzahl--;
|
|
|
- Spiel *zs = spiele->get( i );
|
|
|
+ Spiel* zs = spiele->get( i );
|
|
|
spiele->remove( i );
|
|
|
unlock();
|
|
|
zs->release();
|
|
@@ -607,24 +591,24 @@ bool SpielServer::istAn() const
|
|
|
return db->serverIstNichtPausiert( id );
|
|
|
}
|
|
|
|
|
|
-Server *SpielServer::zServer() const
|
|
|
+Server* SpielServer::zServer() const
|
|
|
{
|
|
|
return server;
|
|
|
}
|
|
|
|
|
|
-SSDatenbank *SpielServer::zDB() const
|
|
|
+SSDatenbank* SpielServer::zDB() const
|
|
|
{
|
|
|
return db;
|
|
|
}
|
|
|
|
|
|
-InitDatei *SpielServer::zInit() const
|
|
|
+InitDatei* SpielServer::zInit() const
|
|
|
{
|
|
|
return ini;
|
|
|
}
|
|
|
|
|
|
bool SpielServer::hatClients() const
|
|
|
{
|
|
|
- return klientAnzahl > 0;
|
|
|
+ return klients->hat( 0 );
|
|
|
}
|
|
|
|
|
|
int SpielServer::getId() const
|
|
@@ -632,12 +616,12 @@ int SpielServer::getId() const
|
|
|
return id;
|
|
|
}
|
|
|
|
|
|
-char *SpielServer::getLetzterFehler() const
|
|
|
+char* SpielServer::getLetzterFehler() const
|
|
|
{
|
|
|
return fehler->getText();
|
|
|
}
|
|
|
|
|
|
-char *SpielServer::getIp() const
|
|
|
+char* SpielServer::getIp() const
|
|
|
{
|
|
|
return ini->zWert( "ServerIp" )->getText();
|
|
|
}
|
|
@@ -652,7 +636,7 @@ int SpielServer::getPort() const
|
|
|
|
|
|
// Inhalt der SSAKlient Klasse aus SpielServer.h
|
|
|
// Konstruktor
|
|
|
-SSAKlient::SSAKlient( SSLSKlient *klient, SpielServer *ss )
|
|
|
+SSAKlient::SSAKlient( SSLSKlient* klient, SpielServer* ss )
|
|
|
: Thread()
|
|
|
{
|
|
|
this->klient = klient;
|
|
@@ -691,14 +675,14 @@ void SSAKlient::thread()
|
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
|
unsigned char nLen = 0;
|
|
|
- klient->getNachricht( (char *)&nLen, 1 );
|
|
|
- char *n = new char[ nLen + 1 ];
|
|
|
+ klient->getNachricht( (char*)&nLen, 1 );
|
|
|
+ char* n = new char[ nLen + 1 ];
|
|
|
n[ (int)nLen ] = 0;
|
|
|
if( nLen )
|
|
|
klient->getNachricht( n, nLen );
|
|
|
unsigned char pLen = 0;
|
|
|
- klient->getNachricht( (char *)&pLen, 1 );
|
|
|
- char *p = new char[ pLen + 1 ];
|
|
|
+ klient->getNachricht( (char*)&pLen, 1 );
|
|
|
+ char* p = new char[ pLen + 1 ];
|
|
|
p[ (int)pLen ] = 0;
|
|
|
if( pLen )
|
|
|
klient->getNachricht( p, pLen );
|
|
@@ -735,7 +719,7 @@ void SSAKlient::thread()
|
|
|
{
|
|
|
if( !ss->serverStarten() )
|
|
|
{
|
|
|
- Text *err = new Text();
|
|
|
+ Text* err = new Text();
|
|
|
err->append( ss->getLetzterFehler() );
|
|
|
errorZuKlient( err->getText() );
|
|
|
err->release();
|
|
@@ -758,7 +742,7 @@ void SSAKlient::thread()
|
|
|
klient->sende( "\1", 1 );
|
|
|
else
|
|
|
{
|
|
|
- Text *err = new Text();
|
|
|
+ Text* err = new Text();
|
|
|
err->append( ss->getLetzterFehler() );
|
|
|
errorZuKlient( err->getText() );
|
|
|
err->release();
|
|
@@ -782,7 +766,7 @@ void SSAKlient::thread()
|
|
|
ok = 1;
|
|
|
else
|
|
|
{
|
|
|
- Text *err = new Text();
|
|
|
+ Text* err = new Text();
|
|
|
err->append( ss->getLetzterFehler() );
|
|
|
errorZuKlient( err->getText() );
|
|
|
err->release();
|
|
@@ -867,7 +851,7 @@ void SSAKlient::thread()
|
|
|
klient->sende( "\1", 1 );
|
|
|
else
|
|
|
{
|
|
|
- Text *err = new Text();
|
|
|
+ Text* err = new Text();
|
|
|
err->append( ss->getLetzterFehler() );
|
|
|
errorZuKlient( err->getText() );
|
|
|
err->release();
|
|
@@ -889,14 +873,14 @@ void SSAKlient::thread()
|
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
|
int maxS = 0;
|
|
|
- klient->getNachricht( (char *)&maxS, 4 );
|
|
|
+ klient->getNachricht( (char*)&maxS, 4 );
|
|
|
if( ss->zDB()->adminHatRecht( adminId, Admin_Recht::SSMSChange ) )
|
|
|
{
|
|
|
if( ss->setMaxSpiele( maxS ) )
|
|
|
klient->sende( "\1", 1 );
|
|
|
else
|
|
|
{
|
|
|
- Text *err = new Text();
|
|
|
+ Text* err = new Text();
|
|
|
err->append( ss->getLetzterFehler() );
|
|
|
errorZuKlient( err->getText() );
|
|
|
err->release();
|
|
@@ -913,13 +897,13 @@ void SSAKlient::thread()
|
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
|
int spielId = 0;
|
|
|
- klient->getNachricht( (char *)&spielId, 4 );
|
|
|
+ klient->getNachricht( (char*)&spielId, 4 );
|
|
|
if( !ss->hatSpielHistorieId( spielId ) )
|
|
|
{
|
|
|
errorZuKlient( "Zugriff auf Spiel-Historie verweigert." );
|
|
|
break;
|
|
|
}
|
|
|
- Text *pfad = new Text( "../spiel log/" );
|
|
|
+ Text* pfad = new Text( "../spiel log/" );
|
|
|
*pfad += spielId;
|
|
|
*pfad += "/fertig";
|
|
|
if( !DateiExistiert( *pfad ) )
|
|
@@ -940,7 +924,7 @@ void SSAKlient::thread()
|
|
|
{
|
|
|
klient->sende( "\1", 1 );
|
|
|
int klientId = 0;
|
|
|
- klient->getNachricht( (char *)&klientId, 4 );
|
|
|
+ klient->getNachricht( (char*)&klientId, 4 );
|
|
|
if( klientId && ss->absturzKlient( klientId ) )
|
|
|
klient->sende( "\1", 1 );
|
|
|
else
|
|
@@ -962,19 +946,19 @@ void SSAKlient::thread()
|
|
|
delete this;
|
|
|
}
|
|
|
|
|
|
-void SSAKlient::sendeVerzeichnisAnKlient( char *pfad, int gpl )
|
|
|
+void SSAKlient::sendeVerzeichnisAnKlient( char* pfad, int gpl )
|
|
|
{
|
|
|
- Datei *d = new Datei();
|
|
|
+ Datei* d = new Datei();
|
|
|
d->setDatei( pfad );
|
|
|
if( d->istOrdner() )
|
|
|
{
|
|
|
int dAnz = d->getUnterdateiAnzahl();
|
|
|
- RCArray< Text > *list = d->getDateiListe();
|
|
|
+ RCArray< Text >* list = d->getDateiListe();
|
|
|
for( int i = 0; i < dAnz; i++ )
|
|
|
{
|
|
|
if( list->z( i ) )
|
|
|
{
|
|
|
- Text *pf = new Text( pfad );
|
|
|
+ Text* pf = new Text( pfad );
|
|
|
pf->append( "/" );
|
|
|
pf->append( list->z( i )->getText() );
|
|
|
sendeVerzeichnisAnKlient( *pf, gpl );
|
|
@@ -988,11 +972,11 @@ void SSAKlient::sendeVerzeichnisAnKlient( char *pfad, int gpl )
|
|
|
__int64 gr = d->getSize();
|
|
|
if( gr && d->zPfad()->getLength() - gpl > 0 && d->open( Datei::Style::lesen ) )
|
|
|
{
|
|
|
- char pfLen = (char)( d->zPfad()->getLength() - gpl );
|
|
|
+ char pfLen = (char)(d->zPfad()->getLength() - gpl);
|
|
|
klient->sende( &pfLen, 1 );
|
|
|
klient->sende( d->zPfad()->getText() + gpl, pfLen );
|
|
|
- klient->sende( (char *)&gr, 8 );
|
|
|
- char *bytes = new char[ 2048 ];
|
|
|
+ klient->sende( (char*)&gr, 8 );
|
|
|
+ char* bytes = new char[ 2048 ];
|
|
|
while( gr )
|
|
|
{
|
|
|
short len = gr > 2048 ? 2048 : (short)gr;
|
|
@@ -1007,7 +991,7 @@ void SSAKlient::sendeVerzeichnisAnKlient( char *pfad, int gpl )
|
|
|
d->release();
|
|
|
}
|
|
|
|
|
|
-void SSAKlient::errorZuKlient( const char *nachricht ) const // sendet eine Fehlernachricht zum Klient
|
|
|
+void SSAKlient::errorZuKlient( const char* nachricht ) const // sendet eine Fehlernachricht zum Klient
|
|
|
{
|
|
|
klient->sende( "\3", 1 );
|
|
|
char len = (char)textLength( nachricht );
|
|
@@ -1018,13 +1002,13 @@ void SSAKlient::errorZuKlient( const char *nachricht ) const // sendet eine Fehl
|
|
|
|
|
|
// Inhalt der SSKlient Klasse aus SpielServer.h
|
|
|
// Konstruktor
|
|
|
-SSKlient::SSKlient( SKlient *klient, SpielServer *ss )
|
|
|
+SSKlient::SSKlient( SKlient* klient, SpielServer* ss )
|
|
|
: SSKlientV()
|
|
|
{
|
|
|
empfangen = klient;
|
|
|
unsigned char key[ 20 ] = { 253, 234, 211, 132, 121, 230, 95, 145, 201, 13, 43, 77, 153, 223, 253, 69, 234, 43, 52, 99 };
|
|
|
- klient->setSendeKey( (char *)key, 20 );
|
|
|
- klient->setEmpfangKey( (char *)key, 20 );
|
|
|
+ klient->setSendeKey( (char*)key, 20 );
|
|
|
+ klient->setEmpfangKey( (char*)key, 20 );
|
|
|
senden = 0;
|
|
|
this->ss = ss;
|
|
|
accountId = 0;
|
|
@@ -1101,12 +1085,12 @@ void SSKlient::absturz()
|
|
|
empfangen->trenne();
|
|
|
}
|
|
|
|
|
|
-void SSKlient::setSpielErstellt( SpielErstellt *zErstellt )
|
|
|
+void SSKlient::setSpielErstellt( SpielErstellt* zErstellt )
|
|
|
{
|
|
|
this->zErstellt = zErstellt;
|
|
|
}
|
|
|
|
|
|
-void SSKlient::setSpiel( Spiel *zSpiel )
|
|
|
+void SSKlient::setSpiel( Spiel* zSpiel )
|
|
|
{
|
|
|
this->zSpiel = zSpiel;
|
|
|
}
|
|
@@ -1122,7 +1106,7 @@ void SSKlient::spielGefunden( int karteId )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\xB", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&karteId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&karteId, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1140,7 +1124,7 @@ void SSKlient::zeitVerbleibend( char sekunden )
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::erstellungAbgebrochen( char *grund )
|
|
|
+void SSKlient::erstellungAbgebrochen( char* grund )
|
|
|
{
|
|
|
if( !senden )
|
|
|
return;
|
|
@@ -1180,27 +1164,27 @@ void SSKlient::erstellungFortsetzen()
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::erstellungInitialisierung( SpielerTeamStruktur *sts )
|
|
|
+void SSKlient::erstellungInitialisierung( SpielerTeamStruktur* sts )
|
|
|
{
|
|
|
if( !senden )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\6", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&sts->spielerAnzahl, 4 );
|
|
|
- senden->sendeEncrypted( (char *)&sts->teamAnzahl, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&sts->spielerAnzahl, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&sts->teamAnzahl, 4 );
|
|
|
for( int i = 0; i < sts->spielerAnzahl; i++ )
|
|
|
{
|
|
|
int f = sts->spielerFarbe->hat( i ) ? sts->spielerFarbe->get( i ) : 0;
|
|
|
- senden->sendeEncrypted( (char *)&f, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&f, 4 );
|
|
|
}
|
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
|
{
|
|
|
int f = sts->teamFarbe->hat( i ) ? sts->teamFarbe->get( i ) : 0;
|
|
|
- senden->sendeEncrypted( (char *)&f, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&f, 4 );
|
|
|
}
|
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
|
{
|
|
|
- Text *name = sts->teamName->z( i );
|
|
|
+ Text* name = sts->teamName->z( i );
|
|
|
char len = (char)name->getLength();
|
|
|
senden->sendeEncrypted( &len, 1 );
|
|
|
if( len )
|
|
@@ -1209,7 +1193,7 @@ void SSKlient::erstellungInitialisierung( SpielerTeamStruktur *sts )
|
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
|
{
|
|
|
int size = sts->teamSize->hat( i ) ? sts->teamSize->get( i ) : 0;
|
|
|
- senden->sendeEncrypted( (char *)&size, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&size, 4 );
|
|
|
}
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
@@ -1222,7 +1206,7 @@ void SSKlient::erstellungAddSpieler( int accountId )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\7", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accountId, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1234,7 +1218,7 @@ void SSKlient::erstellungRemoveSpieler( int accountId )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\x8", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accountId, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1246,14 +1230,14 @@ void SSKlient::erstellungSpielerTeam( int accountId, int spielerNummer )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\x9", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accountId, 4 );
|
|
|
- senden->sendeEncrypted( (char *)&spielerNummer, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accountId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&spielerNummer, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::erstellungChatNachricht( char *nachricht )
|
|
|
+void SSKlient::erstellungChatNachricht( char* nachricht )
|
|
|
{
|
|
|
if( !senden )
|
|
|
return;
|
|
@@ -1286,8 +1270,8 @@ void SSKlient::spielLadenSpielerAdd( int accId, int spielerNumer )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\xD", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accId, 4 );
|
|
|
- senden->sendeEncrypted( (char *)&spielerNumer, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&spielerNumer, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1299,8 +1283,8 @@ void SSKlient::spielLadenSetSpielerProzent( int accId, int prozent )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\xE", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accId, 4 );
|
|
|
- senden->sendeEncrypted( (char *)&prozent, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&prozent, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1312,8 +1296,8 @@ void SSKlient::spielLadenSetSpielerPing( int accId, int ping )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\xF", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&accId, 4 );
|
|
|
- senden->sendeEncrypted( (char *)&ping, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&accId, 4 );
|
|
|
+ senden->sendeEncrypted( (char*)&ping, 4 );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
@@ -1323,7 +1307,7 @@ double SSKlient::ping()
|
|
|
{
|
|
|
if( !senden )
|
|
|
return 0;
|
|
|
- ZeitMesser *zeit = new ZeitMesser();
|
|
|
+ ZeitMesser* zeit = new ZeitMesser();
|
|
|
char ret = 0;
|
|
|
lock();
|
|
|
zeit->messungStart();
|
|
@@ -1349,26 +1333,26 @@ void SSKlient::spielLadenFertig()
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::spielNachricht( short len, char *bytes )
|
|
|
+void SSKlient::spielNachricht( short len, char* bytes )
|
|
|
{
|
|
|
if( !senden )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\x12", 1 );
|
|
|
- senden->sende( (char *)&len, 2 );
|
|
|
+ senden->sende( (char*)&len, 2 );
|
|
|
senden->sende( bytes, len );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::statistikNachricht( short len, char *bytes )
|
|
|
+void SSKlient::statistikNachricht( short len, char* bytes )
|
|
|
{
|
|
|
if( !senden )
|
|
|
return;
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\x13", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&len, 2 );
|
|
|
+ senden->sendeEncrypted( (char*)&len, 2 );
|
|
|
senden->sendeEncrypted( bytes, len );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
@@ -1401,10 +1385,10 @@ void SSKlient::trenne()
|
|
|
ss->addGesendet( senden->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::setSenden( SSKlient *klient )
|
|
|
+void SSKlient::setSenden( SSKlient* klient )
|
|
|
{
|
|
|
senden = klient->getKlient();
|
|
|
- Text *key = ss->zDB()->getKlientKey( klientNummer );
|
|
|
+ Text* key = ss->zDB()->getKlientKey( klientNummer );
|
|
|
if( !key )
|
|
|
{
|
|
|
senden->sendeEncrypted( "\0", 1 );
|
|
@@ -1439,7 +1423,7 @@ void SSKlient::thread()
|
|
|
switch( message )
|
|
|
{
|
|
|
case 1: // Klient Identifikation
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&klientNummer, 4 );
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&klientNummer, 4 );
|
|
|
if( !klientNummer )
|
|
|
errorZuKlientEmpfang( "Du besitzt noch keine Klient Nummer." );
|
|
|
else
|
|
@@ -1449,7 +1433,7 @@ void SSKlient::thread()
|
|
|
if( ss->registerKlient( this ) )
|
|
|
return;
|
|
|
termThread = 1;
|
|
|
- Text *key = ss->zDB()->getKlientKey( klientNummer );
|
|
|
+ Text* key = ss->zDB()->getKlientKey( klientNummer );
|
|
|
if( !key )
|
|
|
errorZuKlientEmpfang( "Es konnte kein Key ermittelt werden." );
|
|
|
else
|
|
@@ -1472,7 +1456,7 @@ void SSKlient::thread()
|
|
|
if( 1 )
|
|
|
{
|
|
|
int klientId = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&klientId, 4 );
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&klientId, 4 );
|
|
|
if( klientId && ss->absturzKlient( klientId ) )
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
else
|
|
@@ -1529,7 +1513,7 @@ void SSKlient::thread()
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
int team = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&team, 4 );
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&team, 4 );
|
|
|
if( zSpiel->klientWechseltTeam( accountId, team ) )
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
else
|
|
@@ -1549,12 +1533,12 @@ void SSKlient::thread()
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
unsigned char len = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&len, 1 );
|
|
|
- char *nachricht = new char[ len + 1 ];
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&len, 1 );
|
|
|
+ char* nachricht = new char[ len + 1 ];
|
|
|
nachricht[ (int)len ] = 0;
|
|
|
if( len )
|
|
|
empfangen->getNachrichtEncrypted( nachricht, len );
|
|
|
- Text *msg = ss->zDB()->getAccountRufName( accountId );
|
|
|
+ Text* msg = ss->zDB()->getAccountRufName( accountId );
|
|
|
msg->append( ": " );
|
|
|
msg->append( nachricht );
|
|
|
delete[] nachricht;
|
|
@@ -1590,7 +1574,7 @@ void SSKlient::thread()
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
int spielErstelltId = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&spielErstelltId, 4 );
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&spielErstelltId, 4 );
|
|
|
ss->SpielErstelltAbbruch( spielErstelltId );
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
}
|
|
@@ -1623,8 +1607,8 @@ void SSKlient::thread()
|
|
|
if( 1 )
|
|
|
{
|
|
|
unsigned short len = 0;
|
|
|
- empfangen->getNachricht( (char *)&len, 2 );
|
|
|
- char *bytes = new char[ len ];
|
|
|
+ empfangen->getNachricht( (char*)&len, 2 );
|
|
|
+ char* bytes = new char[ len ];
|
|
|
empfangen->getNachricht( bytes, len );
|
|
|
if( !zSpiel || !zSpiel->spielNachricht( accountId, len, bytes ) )
|
|
|
errorZuKlientSende( "Es ist ein unbekannter Fehler aufgetreten." );
|
|
@@ -1636,7 +1620,7 @@ void SSKlient::thread()
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
int prozent = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&prozent, 4 );
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&prozent, 4 );
|
|
|
if( zSpiel && zSpiel->klientSpielLadenProzent( accountId, prozent ) )
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
else
|
|
@@ -1651,8 +1635,8 @@ void SSKlient::thread()
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
|
unsigned short len = 0;
|
|
|
- empfangen->getNachrichtEncrypted( (char *)&len, 2 );
|
|
|
- char *bytes = new char[ len ];
|
|
|
+ empfangen->getNachrichtEncrypted( (char*)&len, 2 );
|
|
|
+ char* bytes = new char[ len ];
|
|
|
empfangen->getNachrichtEncrypted( bytes, len );
|
|
|
if( zSpiel && zSpiel->statistikNachricht( accountId, len, bytes ) )
|
|
|
empfangen->sendeEncrypted( "\1", 1 );
|
|
@@ -1722,7 +1706,7 @@ void SSKlient::thread()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void SSKlient::errorZuKlientEmpfang( const char *nachricht ) // sendet eine Fehlernachricht zum Klient
|
|
|
+void SSKlient::errorZuKlientEmpfang( const char* nachricht ) // sendet eine Fehlernachricht zum Klient
|
|
|
{
|
|
|
unsigned char len = (unsigned char)textLength( nachricht );
|
|
|
if( !len )
|
|
@@ -1730,14 +1714,14 @@ void SSKlient::errorZuKlientEmpfang( const char *nachricht ) // sendet eine Fehl
|
|
|
if( empfangen )
|
|
|
{
|
|
|
empfangen->sendeEncrypted( "\3", 1 );
|
|
|
- empfangen->sendeEncrypted( (char *)&len, 1 );
|
|
|
+ empfangen->sendeEncrypted( (char*)&len, 1 );
|
|
|
empfangen->sendeEncrypted( nachricht, len );
|
|
|
}
|
|
|
ss->addEmpfangen( empfangen->getDownloadBytes( 1 ) );
|
|
|
ss->addGesendet( empfangen->getUploadBytes( 1 ) );
|
|
|
}
|
|
|
|
|
|
-void SSKlient::errorZuKlientSende( const char *nachricht )
|
|
|
+void SSKlient::errorZuKlientSende( const char* nachricht )
|
|
|
{
|
|
|
unsigned char len = (unsigned char)textLength( nachricht );
|
|
|
if( !len )
|
|
@@ -1746,7 +1730,7 @@ void SSKlient::errorZuKlientSende( const char *nachricht )
|
|
|
{
|
|
|
lock();
|
|
|
senden->sendeEncrypted( "\3", 1 );
|
|
|
- senden->sendeEncrypted( (char *)&len, 1 );
|
|
|
+ senden->sendeEncrypted( (char*)&len, 1 );
|
|
|
senden->sendeEncrypted( nachricht, len );
|
|
|
unlock();
|
|
|
ss->addEmpfangen( senden->getDownloadBytes( 1 ) );
|
|
@@ -1765,7 +1749,7 @@ int SSKlient::getKlientNummer() const
|
|
|
return klientNummer;
|
|
|
}
|
|
|
|
|
|
-SKlient *SSKlient::getKlient() const
|
|
|
+SKlient* SSKlient::getKlient() const
|
|
|
{
|
|
|
- return dynamic_cast<SKlient *>( empfangen->getThis() );
|
|
|
+ return dynamic_cast<SKlient*>(empfangen->getThis());
|
|
|
}
|