Selaa lähdekoodia

fix compiler errors

Kolja Strohm 3 vuotta sitten
vanhempi
commit
45ec4b078d

+ 5 - 20
PatchServer/Datenbank.cpp

@@ -4,6 +4,7 @@
 // Inhalt der PSDatenbank Klasse aus Datenbank.h
 // Konstruktor
 PSDatenbank::PSDatenbank( InitDatei *zIni )
+    : ReferenceCounter()
 {
     datenbank = new Datenbank( zIni->zWert( "DBBenutzer" )->getText(), zIni->zWert( "DBPasswort" )->getText(),
                                zIni->zWert( "DBName" )->getText(), zIni->zWert( "DBIP" )->getText(),
@@ -14,7 +15,6 @@ PSDatenbank::PSDatenbank( InitDatei *zIni )
         exit( 1 );
     }
     InitializeCriticalSection( &cs );
-    ref = 1;
     Text befehl = "SELECT port, admin_port  FROM server WHERE id = ";
     befehl += zIni->zWert( "ServerId" )->getText();
     lock();
@@ -102,7 +102,7 @@ bool PSDatenbank::proveKlient( int num, int sNum )
     return ret;
 }
 
-Text * PSDatenbank::getKlientKey( int cId )
+Text *PSDatenbank::getKlientKey( int cId )
 {
     lock();
     if( !datenbank->befehl( Text( "SELECT schluessel FROM client WHERE id = " ) += cId ) )
@@ -505,11 +505,11 @@ int PSDatenbank::getDateiGruppePatchServer( int client, int gruppe )
     return ret;
 }
 
-bool PSDatenbank::getPatchServerPortIp( int server, int *port, Text * zIp )
+bool PSDatenbank::getPatchServerPortIp( int server, int *port, Text *zIp )
 {
     if( !server )
         return 0;
-    Text * befehl = new Text( "SELECT port, ip FROM server WHERE id = " );
+    Text *befehl = new Text( "SELECT port, ip FROM server WHERE id = " );
     befehl->append( server );
     lock();
     if( !datenbank->befehl( befehl->getText() ) )
@@ -614,7 +614,7 @@ int PSDatenbank::getDateiGruppeVersion( int gruppe )
     return ret;
 }
 
-bool PSDatenbank::getFileGroupInfoList( int serverId, Array< FileGroupInfo * > * list )
+bool PSDatenbank::getFileGroupInfoList( int serverId, Array< FileGroupInfo * > *list )
 {
     Text befehl = "SELECT x.id, x.name, x.status, x.pfad, x.version FROM (SELECT a.id, a.name, 'Fehlt' AS status, a.pfad, a.version FROM datei_gruppe a "
         "LEFT JOIN server_patch_datei_gruppe b ON a.id = b.datei_gruppe_id AND b.server_patch_id = ";
@@ -810,19 +810,4 @@ bool PSDatenbank::dateiGruppeUpdate( int gruppe )
 Text *PSDatenbank::getLetzterFehler() const
 {
     return datenbank->getLetzterFehler();
-}
-
-// Reference Counting
-PSDatenbank *PSDatenbank::getThis()
-{
-    ref++;
-    return this;
-}
-
-PSDatenbank *PSDatenbank::release()
-{
-    ref--;
-    if( !ref )
-        delete this;
-    return 0;
 }

+ 43 - 47
PatchServer/Datenbank.h

@@ -7,14 +7,14 @@
 
 using namespace Framework;
 using namespace sql;
- 
+
 namespace Admin_Recht
 {
-	const int PSStarten = 3;
-	const int PSBeenden = 4;
-	const int PSPausieren = 5;
-	const int PSMCChange = 6;
-	const int KSGCUpdate = 7;
+    const int PSStarten = 3;
+    const int PSBeenden = 4;
+    const int PSPausieren = 5;
+    const int PSMCChange = 6;
+    const int KSGCUpdate = 7;
 }
 
 struct FileGroupInfo
@@ -26,55 +26,51 @@ struct FileGroupInfo
     int version;
 };
 
-class PSDatenbank
+class PSDatenbank : public virtual ReferenceCounter
 {
 private:
-	Datenbank *datenbank;
-	CRITICAL_SECTION cs;
-	int ref;
+    Datenbank *datenbank;
+    CRITICAL_SECTION cs;
 
 public:
-	// Konstruktor
-	PSDatenbank( InitDatei *zIni );
-	// Destruktor
-	~PSDatenbank();
-	// nicht constant
-	void lock();
-	void unlock();
-	int istAdministrator( const char *name, const char *passwort );
-	bool adminHatRecht( int id, int recht );
-	bool proveKlient( int num, int sNum );
-	Text *getKlientKey( int cId );
-	void unregisterKlient( int num, int sNum );
-	bool setServerStatus( int id, int status );
-	bool setMaxClients( int id, int maxC );
-	bool serverIstNichtPausiert( int id );
-	Result getSystemListe();
-	Result getDateiListe( int system, int gruppe );
+    // Konstruktor
+    PSDatenbank( InitDatei *zIni );
+    // Destruktor
+    ~PSDatenbank();
+    // nicht constant
+    void lock();
+    void unlock();
+    int istAdministrator( const char *name, const char *passwort );
+    bool adminHatRecht( int id, int recht );
+    bool proveKlient( int num, int sNum );
+    Text *getKlientKey( int cId );
+    void unregisterKlient( int num, int sNum );
+    bool setServerStatus( int id, int status );
+    bool setMaxClients( int id, int maxC );
+    bool serverIstNichtPausiert( int id );
+    Result getSystemListe();
+    Result getDateiListe( int system, int gruppe );
     Result getDateiListeSMP( int system, int gruppe );
-	Result getDateiListeOhneOrdner( int system, int gruppe );
-	Result getDeletedFiles( int system, int gruppe );
-	Text *getSystemName( int system );
-	Text *getDateiGruppeName( int gruppe );
-	bool supportedDateiGruppe( int server, int gruppe );
-	bool istDateigruppeStatusUpdate( int server, int gruppe );
-	bool setDateiGruppe( int server, int gruppe, int version );
-	bool setDateiGruppe( int server, int gruppe, bool update );
-	bool dateiGruppeUpdateFertig( int server, int gruppe );
-	int getDateiGruppePatchServer( int client, int gruppe );
-	bool getPatchServerPortIp( int server, int *port, Text *zIp );
-	Result getGruppeIds();
-	Result getDateiGruppeListe();
-	int getDateiGruppeVersion( int gruppe );
+    Result getDateiListeOhneOrdner( int system, int gruppe );
+    Result getDeletedFiles( int system, int gruppe );
+    Text *getSystemName( int system );
+    Text *getDateiGruppeName( int gruppe );
+    bool supportedDateiGruppe( int server, int gruppe );
+    bool istDateigruppeStatusUpdate( int server, int gruppe );
+    bool setDateiGruppe( int server, int gruppe, int version );
+    bool setDateiGruppe( int server, int gruppe, bool update );
+    bool dateiGruppeUpdateFertig( int server, int gruppe );
+    int getDateiGruppePatchServer( int client, int gruppe );
+    bool getPatchServerPortIp( int server, int *port, Text *zIp );
+    Result getGruppeIds();
+    Result getDateiGruppeListe();
+    int getDateiGruppeVersion( int gruppe );
     int getDateiVersion( const char *pfad, int system, int gruppe );
-    bool getFileGroupInfoList( int serverId, Array< FileGroupInfo* > *list );
+    bool getFileGroupInfoList( int serverId, Array< FileGroupInfo * > *list );
     bool updateDatei( const char *pfad, char status, char *letzteAEnderung, int system, int gruppe );
     bool dateiGruppeUpdate( int gruppe );
-	// constant
-	Text *getLetzterFehler() const;
-	// Reference Counting
-	PSDatenbank *getThis();
-	PSDatenbank *release();
+    // constant
+    Text *getLetzterFehler() const;
 };
 
 #endif

BIN
PatchServer/PatchServer


+ 110 - 110
PatchServer/PatchServer.cpp

@@ -16,7 +16,7 @@ PatchServer::PatchServer( InitDatei *zIni )
     empfangen = 0;
     gesendet = 0;
     fehler = new Text();
-    ini = zIni->getThis();
+    ini = dynamic_cast<InitDatei *>( zIni->getThis() );
     id = *zIni->zWert( "ServerId" );
     Text *dgInitPfad = new Text( ini->zWert( "SystemPfad" )->getText() );
     dgInitPfad->append( "/datei_gruppe.ini" );
@@ -75,13 +75,13 @@ void PatchServer::runn()
         if( end && klient )
         {
             klient->trenne();
-            klient = klient->release();
+            klient = (SSLSKlient *)klient->release();
             Sleep( 1000 );
             return;
         }
         if( !klient )
             continue;
-        PSAKlient * clHandle = new PSAKlient( klient, (PatchServer *)getThis(), ini->getThis() );
+        PSAKlient *clHandle = new PSAKlient( klient, dynamic_cast<PatchServer *>( getThis() ), dynamic_cast<InitDatei *>( ini->getThis() ) );
         clHandle->start();
     }
 }
@@ -95,7 +95,7 @@ void PatchServer::thread()
         if( !klient )
             continue;
         Framework::getThreadRegister()->cleanUpClosedThreads();
-        PSKlient * clHandle = new PSKlient( klient, (PatchServer *)getThis(), ini->getThis() );
+        PSKlient *clHandle = new PSKlient( klient, dynamic_cast<PatchServer *>( getThis() ), dynamic_cast<InitDatei *>( ini->getThis() ) );
         EnterCriticalSection( &cs );
         klients->set( clHandle, klientAnzahl );
         klientAnzahl++;
@@ -114,13 +114,13 @@ void PatchServer::close()
     EnterCriticalSection( &cs );
     for( int i = 0; i < klientAnzahl; i++ )
         klients->z( i )->absturz();
-    klients = klients->release();
+    klients = ( RCArray<PSKlient>* ) klients->release();
     klientAnzahl = 0;
     LeaveCriticalSection( &cs );
     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();
@@ -233,7 +233,7 @@ bool PatchServer::absturzKlient( int klientId )
     return gefunden;
 }
 
-bool PatchServer::removeKlient( PSKlient * zKlient )
+bool PatchServer::removeKlient( PSKlient *zKlient )
 {
     bool gefunden = 0;
     EnterCriticalSection( &cs );
@@ -280,7 +280,7 @@ bool PatchServer::beginnUpdate( int gruppe )
     }
     if( !db->setDateiGruppe( id, gruppe, true ) )
         return 0;
-    Text * gruppeN = db->getDateiGruppeName( gruppe );
+    Text *gruppeN = db->getDateiGruppeName( gruppe );
     if( !gruppeN )
         return 0;
     Result systemT = db->getSystemListe();
@@ -292,7 +292,7 @@ bool PatchServer::beginnUpdate( int gruppe )
         pfad->append( "/" );
         pfad->append( systemT.values[ i * 2 + 1 ].getText() );
         pfad->append( "/version.ini" );
-        InitDatei * vIni = new InitDatei( pfad->getText() );
+        InitDatei *vIni = new InitDatei( pfad->getText() );
         vIni->laden();
         pfad->remove( pfad->getLength() - 11, pfad->getLength() );
         Result dateiT = db->getDeletedFiles( TextZuInt( systemT.values[ i * 2 ].getText(), 10 ), gruppe );
@@ -402,13 +402,13 @@ bool PatchServer::proveVersion( int gruppe ) const
         Text *gruppeN = db->getDateiGruppeName( gruppe );
         if( !gruppeN )
             continue;
-        Text * pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
+        Text *pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
         pfad->append( "/" );
         pfad->append( gruppeN );
         pfad->append( "/" );
         pfad->append( systemT.values[ i * 2 + 1 ].getText() );
         pfad->append( "/version.ini" );
-        InitDatei * vIni = new InitDatei( pfad );
+        InitDatei *vIni = new InitDatei( pfad );
         vIni->laden();
         int dAnz = vIni->getWertAnzahl();
         if( dAnz != dateiT.zeilenAnzahl ) // nicht aktuell
@@ -468,13 +468,13 @@ bool PatchServer::proveVersion() const
             Text *gruppeN = db->getDateiGruppeName( gruppe );
             if( !gruppeN )
                 continue;
-            Text * pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
+            Text *pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
             pfad->append( "/" );
             pfad->append( gruppeN );
             pfad->append( "/" );
             pfad->append( systemT.values[ i * 2 + 1 ].getText() );
             pfad->append( "/version.ini" );
-            InitDatei * vIni = new InitDatei( pfad );
+            InitDatei *vIni = new InitDatei( pfad );
             vIni->laden();
             int dAnz = vIni->getWertAnzahl();
             if( dAnz != dateiT.zeilenAnzahl ) // nicht aktuell
@@ -540,7 +540,7 @@ bool PatchServer::proveVersion() const
 
 // Inhalt der PSAKlient Klasse aus PatchServer.h
 // Konstruktor 
-PSAKlient::PSAKlient( SSLSKlient * klient, PatchServer * ps, InitDatei * ini )
+PSAKlient::PSAKlient( SSLSKlient *klient, PatchServer *ps, InitDatei *ini )
     : Thread()
 {
     this->klient = klient;
@@ -584,13 +584,13 @@ void PSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     unsigned char len = 0;
-                    klient->getNachricht( (char *)& len, 1 );
+                    klient->getNachricht( (char *)&len, 1 );
                     char *n = new char[ len + 1 ];
                     n[ (int)len ] = 0;
                     if( len )
                         klient->getNachricht( n, len );
                     unsigned char pLen = 0;
-                    klient->getNachricht( (char *)& pLen, 1 );
+                    klient->getNachricht( (char *)&pLen, 1 );
                     char *p = new char[ pLen + 1 ];
                     p[ (int)pLen ] = 0;
                     if( pLen )
@@ -686,7 +686,7 @@ void PSAKlient::thread()
                     }
                     else
                         ok = 1;
-                    if( ok &&ps->hatClients() )
+                    if( ok && ps->hatClients() )
                     {
                         errorZuKlient( "Es sind noch Klients Online. Bitte versuche es später erneut." );
                         break;
@@ -784,7 +784,7 @@ void PSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     int maxC = 0;
-                    klient->getNachricht( (char *)& maxC, 4 );
+                    klient->getNachricht( (char *)&maxC, 4 );
                     if( ps->zDB()->adminHatRecht( adminId, Admin_Recht::PSMCChange ) )
                     {
                         if( ps->setMaxKlients( maxC ) )
@@ -814,16 +814,16 @@ void PSAKlient::thread()
                     for( int i = 0; i < systemT.zeilenAnzahl; i++ )
                     {
                         int len = systemT.values[ i * 2 + 1 ].getLength();
-                        klient->sende( (char *)& len, 4 );
+                        klient->sende( (char *)&len, 4 );
                         klient->sende( systemT.values[ i * 2 + 1 ].getText(), len );
                         Result dateiT = ps->zDB()->getDateiListeOhneOrdner( TextZuInt( systemT.values[ i * 2 ].getText(), 10 ), updateGruppe );
-                        Text * pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
+                        Text *pfad = new Text( ini->zWert( "SystemPfad" )->getText() );
                         pfad->append( "/" );
                         pfad->append( gruppeN->getText() );
                         pfad->append( "/" );
                         pfad->append( systemT.values[ i * 2 + 1 ].getText() );
                         pfad->append( "/version.ini" );
-                        InitDatei * vIni = new InitDatei( pfad );
+                        InitDatei *vIni = new InitDatei( pfad );
                         vIni->laden();
                         for( int j = 0; j < dateiT.zeilenAnzahl; j++ )
                         {
@@ -835,7 +835,7 @@ void PSAKlient::thread()
                             if( veraltet )
                             {
                                 int len = dateiT.values[ j * 2 ].getLength();
-                                klient->sende( (char *)& len, 4 );
+                                klient->sende( (char *)&len, 4 );
                                 klient->sende( dateiT.values[ j * 2 ].getText(), len );
                             }
                         }
@@ -862,7 +862,7 @@ void PSAKlient::thread()
                     ps->endUpdate( updateGruppe );
                     updateGruppe = 0;
                     if( gruppeN )
-                        gruppeN = gruppeN->release();
+                        gruppeN = (Text *)gruppeN->release();
                     std::cout << "PS: Update erfolgreich abgeschlossen.\n";
                     klient->sende( "\1", 1 );
                 }
@@ -879,7 +879,7 @@ void PSAKlient::thread()
                     }
                     klient->sende( "\1", 1 );
                     int dg = 0;
-                    klient->getNachricht( (char *)& dg, 4 );
+                    klient->getNachricht( (char *)&dg, 4 );
                     gruppeN = ps->zDB()->getDateiGruppeName( dg );
                     if( !gruppeN )
                     {
@@ -919,12 +919,12 @@ void PSAKlient::thread()
                     }
                     klient->sende( "\1", 1 );
                     int system = 0;
-                    klient->getNachricht( (char *)& system, 4 );
+                    klient->getNachricht( (char *)&system, 4 );
                     int version = 0;
-                    klient->getNachricht( (char *)& version, 4 );
+                    klient->getNachricht( (char *)&version, 4 );
                     Text *sName = ps->zDB()->getSystemName( system );
                     unsigned short len = 0;
-                    klient->getNachricht( (char *)& len, 2 );
+                    klient->getNachricht( (char *)&len, 2 );
                     char *pfad = new char[ len + 1 ];
                     pfad[ len ] = 0;
                     if( len )
@@ -954,14 +954,14 @@ void PSAKlient::thread()
                     if( d->open( Datei::Style::schreiben ) )
                     {
                         klient->sende( "\1", 1 );
-                        klient->getNachricht( (char *)& len, 2 );
+                        klient->getNachricht( (char *)&len, 2 );
                         while( len )
                         {
                             char *buff = new char[ len ];
                             klient->getNachricht( buff, len );
                             d->schreibe( buff, len );
                             delete[] buff;
-                            klient->getNachricht( (char *)& len, 2 );
+                            klient->getNachricht( (char *)&len, 2 );
                             ps->addEmpfangen( klient->getDownloadBytes( 1 ) );
                             ps->addGesendet( klient->getUploadBytes( 1 ) );
                         }
@@ -990,8 +990,8 @@ void PSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     int klientId = 0;
-                    klient->getNachricht( (char *)& klientId, 4 );
-                    if( klientId &&ps->absturzKlient( klientId ) )
+                    klient->getNachricht( (char *)&klientId, 4 );
+                    if( klientId && ps->absturzKlient( klientId ) )
                         klient->sende( "\1", 1 );
                     else
                         klient->sende( "\0", 1 );
@@ -1011,21 +1011,21 @@ void PSAKlient::thread()
                         {
                             klient->sende( "\1", 1 );
                             int anz = list.getEintragAnzahl();
-                            klient->sende( (char *)& anz, 4 );
+                            klient->sende( (char *)&anz, 4 );
                             for( int i = 0; i < anz; i++ )
                             {
                                 FileGroupInfo *info = list.get( i );
-                                klient->sende( (char *)& info->id, 4 );
+                                klient->sende( (char *)&info->id, 4 );
                                 unsigned char len = (unsigned char)info->name.getLength();
-                                klient->sende( (char *)& len, 1 );
+                                klient->sende( (char *)&len, 1 );
                                 klient->sende( info->name, len );
                                 len = (unsigned char)info->status.getLength();
-                                klient->sende( (char *)& len, 1 );
+                                klient->sende( (char *)&len, 1 );
                                 klient->sende( info->status, len );
                                 unsigned short l = (unsigned short)info->pfad.getLength();
-                                klient->sende( (char *)& l, 2 );
+                                klient->sende( (char *)&l, 2 );
                                 klient->sende( info->pfad, l );
-                                klient->sende( (char *)& info->version, 4 );
+                                klient->sende( (char *)&info->version, 4 );
                                 delete info;
                             }
                         }
@@ -1045,13 +1045,13 @@ void PSAKlient::thread()
                     {
                         klient->sende( "\1", 1 );
                         Result res = ps->zDB()->getSystemListe();
-                        klient->sende( (char *)& res.zeilenAnzahl, 4 );
+                        klient->sende( (char *)&res.zeilenAnzahl, 4 );
                         for( int i = 0; i < res.zeilenAnzahl; i++ )
                         {
                             int id = res.values[ i * 2 ];
-                            klient->sende( (char *)& id, 4 );
+                            klient->sende( (char *)&id, 4 );
                             unsigned char len = (unsigned char)res.values[ i * 2 + 1 ].getLength();
-                            klient->sende( (char *)& len, 1 );
+                            klient->sende( (char *)&len, 1 );
                             klient->sende( res.values[ i * 2 + 1 ], len );
                         }
                         res.destroy();
@@ -1069,21 +1069,21 @@ void PSAKlient::thread()
                     {
                         klient->sende( "\1", 1 );
                         int system, group;
-                        klient->getNachricht( (char *)& system, 4 );
-                        klient->getNachricht( (char *)& group, 4 );
+                        klient->getNachricht( (char *)&system, 4 );
+                        klient->getNachricht( (char *)&group, 4 );
                         Result res = ps->zDB()->getDateiListeSMP( system, group );
-                        klient->sende( (char *)& res.zeilenAnzahl, 4 );
+                        klient->sende( (char *)&res.zeilenAnzahl, 4 );
                         for( int i = 0; i < res.zeilenAnzahl; i++ )
                         {
                             int id = res.values[ i * 4 ];
-                            klient->sende( (char *)& id, 4 );
+                            klient->sende( (char *)&id, 4 );
                             unsigned short len = (unsigned short)res.values[ i * 4 + 1 ].getLength();
-                            klient->sende( (char *)& len, 2 );
+                            klient->sende( (char *)&len, 2 );
                             klient->sende( res.values[ i * 4 + 1 ], len );
                             int version = res.values[ i * 4 + 2 ];
-                            klient->sende( (char *)& version, 4 );
+                            klient->sende( (char *)&version, 4 );
                             unsigned char l = (unsigned char)res.values[ i * 4 + 3 ].getLength();
-                            klient->sende( (char *)& l, 1 );
+                            klient->sende( (char *)&l, 1 );
                             klient->sende( res.values[ i * 4 + 3 ], l );
                         }
                         res.destroy();
@@ -1102,15 +1102,15 @@ void PSAKlient::thread()
                         klient->sende( "\1", 1 );
                         int group, system;
                         unsigned short len;
-                        klient->getNachricht( (char *)& len, 2 );
+                        klient->getNachricht( (char *)&len, 2 );
                         char *path = new char[ len + 1 ];
                         klient->getNachricht( path, len );
                         path[ len ] = 0;
-                        klient->getNachricht( (char *)& group, 4 );
-                        klient->getNachricht( (char *)& system, 4 );
+                        klient->getNachricht( (char *)&group, 4 );
+                        klient->getNachricht( (char *)&system, 4 );
                         int version = ps->zDB()->getDateiVersion( path, system, group );
                         delete[] path;
-                        klient->sende( (char *)& version, 4 );
+                        klient->sende( (char *)&version, 4 );
                     }
                 }
                 break;
@@ -1125,14 +1125,14 @@ void PSAKlient::thread()
                     {
                         klient->sende( "\1", 1 );
                         unsigned short len;
-                        klient->getNachricht( (char *)& len, 2 );
+                        klient->getNachricht( (char *)&len, 2 );
                         char *path = new char[ len + 1 ];
                         klient->getNachricht( path, len );
                         path[ len ] = 0;
                         char status = 0; // 0: delete, 1: update, 2: new
                         klient->getNachricht( &status, 1 );
                         unsigned char l;
-                        klient->getNachricht( (char *)& l, 1 );
+                        klient->getNachricht( (char *)&l, 1 );
                         char *time = 0;
                         if( l > 0 )
                         {
@@ -1141,8 +1141,8 @@ void PSAKlient::thread()
                             time[ l ] = 0;
                         }
                         int system, gruppe;
-                        klient->getNachricht( (char *)& system, 4 );
-                        klient->getNachricht( (char *)& gruppe, 4 );
+                        klient->getNachricht( (char *)&system, 4 );
+                        klient->getNachricht( (char *)&gruppe, 4 );
                         if( ps->zDB()->updateDatei( path, status, time, system, gruppe ) )
                             klient->sende( "\1", 1 );
                         else
@@ -1161,7 +1161,7 @@ void PSAKlient::thread()
                     {
                         klient->sende( "\1", 1 );
                         int gruppe;
-                        klient->getNachricht( (char *)& gruppe, 4 );
+                        klient->getNachricht( (char *)&gruppe, 4 );
                         if( ps->zDB()->dateiGruppeUpdate( gruppe ) )
                             klient->sende( "\1", 1 );
                         else
@@ -1197,7 +1197,7 @@ void PSAKlient::errorZuKlient( const char *nachricht ) const // sendet eine Fehl
 
 // Inhalt der PSKlient aus PatchServer.h
 // Konstruktor 
-PSKlient::PSKlient( SKlient * klient, PatchServer * ps, InitDatei * ini )
+PSKlient::PSKlient( SKlient *klient, PatchServer *ps, InitDatei *ini )
     : Thread()
 {
     this->klient = klient;
@@ -1246,13 +1246,13 @@ void PSKlient::thread()
             case 1: // Klient identifikation
                 if( encrypted )
                 {
-                    klient->getNachrichtEncrypted( (char *)& klientNummer, 4 );
-                    klient->getNachrichtEncrypted( (char *)& system, 1 );
+                    klient->getNachrichtEncrypted( (char *)&klientNummer, 4 );
+                    klient->getNachrichtEncrypted( (char *)&system, 1 );
                 }
                 else
                 {
-                    klient->getNachricht( (char *)& klientNummer, 4 );
-                    klient->getNachricht( (char *)& system, 1 );
+                    klient->getNachricht( (char *)&klientNummer, 4 );
+                    klient->getNachricht( (char *)&system, 1 );
                 }
                 if( !ps->zDB()->proveKlient( klientNummer, ps->getId() ) )
                 {
@@ -1294,16 +1294,16 @@ void PSKlient::thread()
                             int klientId = 0;
                             if( encrypted )
                             {
-                                klient->getNachrichtEncrypted( (char *)& klientId, 4 );
-                                if( klientId &&ps->absturzKlient( klientId ) )
+                                klient->getNachrichtEncrypted( (char *)&klientId, 4 );
+                                if( klientId && ps->absturzKlient( klientId ) )
                                     klient->sendeEncrypted( "\1", 1 );
                                 else
                                     klient->sendeEncrypted( "\0", 1 );
                             }
                             else
                             {
-                                klient->getNachricht( (char *)& klientId, 4 );
-                                if( klientId &&ps->absturzKlient( klientId ) )
+                                klient->getNachricht( (char *)&klientId, 4 );
+                                if( klientId && ps->absturzKlient( klientId ) )
                                     klient->sende( "\1", 1 );
                                 else
                                     klient->sende( "\0", 1 );
@@ -1419,18 +1419,18 @@ void PSKlient::thread()
                     }
                     klient->sende( "\1", 1 );
                     unsigned char byte = 0;
-                    klient->getNachricht( (char *)& byte, 1 );
+                    klient->getNachricht( (char *)&byte, 1 );
                     Text *pfad = new Text( "" );
                     pfad->fillText( ' ', byte );
                     klient->getNachricht( pfad->getText(), byte );
                     __int64 pos = 0;
-                    klient->getNachricht( (char *)& pos, 8 );
+                    klient->getNachricht( (char *)&pos, 8 );
                     if( system )
                         pfad->insert( 0, "../versions/x64/live/" );
                     else
                         pfad->insert( 0, "../versions/x32/live/" );
                     pfad->ersetzen( "ü", "ue" );
-                    Datei * datei = new Datei();
+                    Datei *datei = new Datei();
                     datei->setDatei( pfad );
                     datei->open( Datei::Style::lesen );
                     if( pos )
@@ -1449,14 +1449,14 @@ void PSKlient::thread()
                         byteLen = 2048;
                         if( length < 2048 )
                             byteLen = (unsigned short)length;
-                        klient->sende( (char *)& byteLen, 2 );
+                        klient->sende( (char *)&byteLen, 2 );
                         datei->lese( bytes, byteLen );
                         klient->sende( bytes, byteLen );
                         length -= byteLen;
                         char ret = 0;
                         if( byteLen != 2048 )
                             break;
-                        klient->getNachricht( (char *)& ret, 1 );
+                        klient->getNachricht( (char *)&ret, 1 );
                         ps->addEmpfangen( klient->getDownloadBytes( 1 ) );
                         ps->addGesendet( klient->getUploadBytes( 1 ) );
                         if( ret == 1 )
@@ -1466,7 +1466,7 @@ void PSKlient::thread()
                         if( ret == 2 )
                         {
                             pos = 0;
-                            klient->getNachricht( (char *)& pos, 8 );
+                            klient->getNachricht( (char *)&pos, 8 );
                             if( pos > length )
                                 pos = length;
                             datei->setLPosition( pos, 0 );
@@ -1489,7 +1489,7 @@ void PSKlient::thread()
                     }
                     klient->sende( "\1", 1 );
                     int version = 30;
-                    klient->sende( (char *)& version, 4 );
+                    klient->sende( (char *)&version, 4 );
                 }
                 break;
             case 8: // Frage nach Dateigröße ****Altes Update System
@@ -1511,11 +1511,11 @@ void PSKlient::thread()
                     else
                         pfad->insert( 0, "../versions/x32/live/" );
                     pfad->ersetzen( "ü", "ue" );
-                    Datei * datei = new Datei();
+                    Datei *datei = new Datei();
                     datei->setDatei( pfad );
                     __int64 size = datei->getSize();
                     datei->release();
-                    klient->sende( (char *)& size, 8 );
+                    klient->sende( (char *)&size, 8 );
                 }
                 break;
             case 9: // Frage nach Dateiliste ****Neues Update System
@@ -1532,9 +1532,9 @@ void PSKlient::thread()
                         klient->sende( "\1", 1 );
                     int updateGruppe = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& updateGruppe, 4 );
+                        klient->getNachrichtEncrypted( (char *)&updateGruppe, 4 );
                     else
-                        klient->getNachricht( (char *)& updateGruppe, 4 );
+                        klient->getNachricht( (char *)&updateGruppe, 4 );
                     Result dateien = ps->zDB()->getDateiListeOhneOrdner( system, updateGruppe );
                     if( !dateien.zeilenAnzahl )
                     {
@@ -1554,17 +1554,17 @@ void PSKlient::thread()
                             break;
                         if( encrypted )
                         {
-                            klient->sendeEncrypted( (char *)& len, 4 );
+                            klient->sendeEncrypted( (char *)&len, 4 );
                             klient->sendeEncrypted( dateien.values[ i * 2 ].getText(), len );
                             int version = TextZuInt( dateien.values[ i * 2 + 1 ].getText(), 10 );
-                            klient->sendeEncrypted( (char *)& version, 4 );
+                            klient->sendeEncrypted( (char *)&version, 4 );
                         }
                         else
                         {
-                            klient->sende( (char *)& len, 4 );
+                            klient->sende( (char *)&len, 4 );
                             klient->sende( dateien.values[ i * 2 ].getText(), len );
                             int version = TextZuInt( dateien.values[ i * 2 + 1 ].getText(), 10 );
-                            klient->sende( (char *)& version, 4 );
+                            klient->sende( (char *)&version, 4 );
                         }
                     }
                     if( encrypted )
@@ -1578,12 +1578,12 @@ void PSKlient::thread()
                             break;
                         if( encrypted )
                         {
-                            klient->sendeEncrypted( (char *)& len, 4 );
+                            klient->sendeEncrypted( (char *)&len, 4 );
                             klient->sendeEncrypted( deleted.values[ i ].getText(), len );
                         }
                         else
                         {
-                            klient->sende( (char *)& len, 4 );
+                            klient->sende( (char *)&len, 4 );
                             klient->sende( deleted.values[ i ].getText(), len );
                         }
                     }
@@ -1609,9 +1609,9 @@ void PSKlient::thread()
                         klient->sende( "\1", 1 );
                     int updateGruppe = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& updateGruppe, 4 );
+                        klient->getNachrichtEncrypted( (char *)&updateGruppe, 4 );
                     else
-                        klient->getNachricht( (char *)& updateGruppe, 4 );
+                        klient->getNachricht( (char *)&updateGruppe, 4 );
                     if( !ps->zDB()->supportedDateiGruppe( ps->getId(), updateGruppe ) )
                     {
                         int s = ps->zDB()->getDateiGruppePatchServer( klientNummer, updateGruppe );
@@ -1625,17 +1625,17 @@ void PSKlient::thread()
                             if( encrypted )
                             {
                                 klient->sendeEncrypted( "\2", 1 );
-                                klient->sendeEncrypted( (char *)& port, 4 );
+                                klient->sendeEncrypted( (char *)&port, 4 );
                                 int len = ip->getLength();
-                                klient->sendeEncrypted( (char *)& len, 4 );
+                                klient->sendeEncrypted( (char *)&len, 4 );
                                 klient->sendeEncrypted( (char *)ip->getText(), len );
                             }
                             else
                             {
                                 klient->sende( "\2", 1 );
-                                klient->sende( (char *)& port, 4 );
+                                klient->sende( (char *)&port, 4 );
                                 int len = ip->getLength();
-                                klient->sende( (char *)& len, 4 );
+                                klient->sende( (char *)&len, 4 );
                                 klient->sende( (char *)ip->getText(), len );
                             }
                         }
@@ -1667,9 +1667,9 @@ void PSKlient::thread()
                         klient->sende( "\1", 1 );
                     int len = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& len, 4 );
+                        klient->getNachrichtEncrypted( (char *)&len, 4 );
                     else
-                        klient->getNachricht( (char *)& len, 4 );
+                        klient->getNachricht( (char *)&len, 4 );
                     char *pf = new char[ len + 1 ];
                     pf[ len ] = 0;
                     if( encrypted )
@@ -1678,14 +1678,14 @@ void PSKlient::thread()
                         klient->getNachricht( pf, len );
                     pfad->append( pf );
                     delete[] pf;
-                    Datei * datei = new Datei();
+                    Datei *datei = new Datei();
                     datei->setDatei( pfad );
                     __int64 size = datei->getSize();
                     datei->release();
                     if( encrypted )
-                        klient->sendeEncrypted( (char *)& size, 8 );
+                        klient->sendeEncrypted( (char *)&size, 8 );
                     else
-                        klient->sende( (char *)& size, 8 );
+                        klient->sende( (char *)&size, 8 );
                 }
                 break;
             case 11: // Frage nach Datei ****Neues Update System
@@ -1702,9 +1702,9 @@ void PSKlient::thread()
                         klient->sende( "\1", 1 );
                     int updateGruppe = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& updateGruppe, 4 );
+                        klient->getNachrichtEncrypted( (char *)&updateGruppe, 4 );
                     else
-                        klient->getNachricht( (char *)& updateGruppe, 4 );
+                        klient->getNachricht( (char *)&updateGruppe, 4 );
                     if( !ps->zDB()->supportedDateiGruppe( ps->getId(), updateGruppe ) )
                     {
                         int s = ps->zDB()->getDateiGruppePatchServer( klientNummer, updateGruppe );
@@ -1718,17 +1718,17 @@ void PSKlient::thread()
                             if( encrypted )
                             {
                                 klient->sendeEncrypted( "\2", 1 );
-                                klient->sendeEncrypted( (char *)& port, 4 );
+                                klient->sendeEncrypted( (char *)&port, 4 );
                                 int len = ip->getLength();
-                                klient->sendeEncrypted( (char *)& len, 4 );
+                                klient->sendeEncrypted( (char *)&len, 4 );
                                 klient->sendeEncrypted( (char *)ip->getText(), len );
                             }
                             else
                             {
                                 klient->sende( "\2", 1 );
-                                klient->sende( (char *)& port, 4 );
+                                klient->sende( (char *)&port, 4 );
                                 int len = ip->getLength();
-                                klient->sende( (char *)& len, 4 );
+                                klient->sende( (char *)&len, 4 );
                                 klient->sende( (char *)ip->getText(), len );
                             }
                         }
@@ -1760,9 +1760,9 @@ void PSKlient::thread()
                         klient->sende( "\1", 1 );
                     int len = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& len, 4 );
+                        klient->getNachrichtEncrypted( (char *)&len, 4 );
                     else
-                        klient->getNachricht( (char *)& len, 4 );
+                        klient->getNachricht( (char *)&len, 4 );
                     char *pf = new char[ len + 1 ];
                     pf[ len ] = 0;
                     if( encrypted )
@@ -1773,10 +1773,10 @@ void PSKlient::thread()
                     delete[] pf;
                     __int64 pos = 0;
                     if( encrypted )
-                        klient->getNachrichtEncrypted( (char *)& pos, 8 );
+                        klient->getNachrichtEncrypted( (char *)&pos, 8 );
                     else
-                        klient->getNachricht( (char *)& pos, 8 );
-                    Datei * datei = new Datei();
+                        klient->getNachricht( (char *)&pos, 8 );
+                    Datei *datei = new Datei();
                     datei->setDatei( pfad );
                     datei->open( Datei::Style::lesen );
                     if( pos )
@@ -1834,24 +1834,24 @@ void PSKlient::thread()
                         if( encrypted )
                         {
                             int id = TextZuInt( dgl.values[ i * 3 ].getText(), 10 );
-                            klient->sendeEncrypted( (char *)& id, 4 );
+                            klient->sendeEncrypted( (char *)&id, 4 );
                             int len = dgl.values[ i * 3 + 1 ].getLength();
-                            klient->sendeEncrypted( (char *)& len, 4 );
+                            klient->sendeEncrypted( (char *)&len, 4 );
                             if( len )
                                 klient->sendeEncrypted( dgl.values[ i * 3 + 1 ].getText(), len );
                             int vs = TextZuInt( dgl.values[ i * 3 + 2 ].getText(), 10 );
-                            klient->sendeEncrypted( (char *)& vs, 4 );
+                            klient->sendeEncrypted( (char *)&vs, 4 );
                         }
                         else
                         {
                             int id = TextZuInt( dgl.values[ i * 3 ].getText(), 10 );
-                            klient->sende( (char *)& id, 4 );
+                            klient->sende( (char *)&id, 4 );
                             int len = dgl.values[ i * 3 + 1 ].getLength();
-                            klient->sende( (char *)& len, 4 );
+                            klient->sende( (char *)&len, 4 );
                             if( len )
                                 klient->sende( dgl.values[ i * 3 + 1 ].getText(), len );
                             int vs = TextZuInt( dgl.values[ i * 3 + 2 ].getText(), 10 );
-                            klient->sende( (char *)& vs, 4 );
+                            klient->sende( (char *)&vs, 4 );
                         }
                     }
                     if( encrypted )

+ 6 - 4
PatchServer/PatchServer.vcxproj

@@ -37,7 +37,7 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <TargetExt />
     <RemoteProjectDir>$(RemoteRootDir)/Server/$(ProjectName)/release</RemoteProjectDir>
-    <IncludePath>..\..\..\..\Allgemein\Framework;../../../Framework/release;..\..\..\..\Allgemein\Network\Network;../../../Network/release;..\..\..\..\Allgemein\sql\sql;../../../sql/release;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\Allgemein\Framework;../../../Framework/release;..\..\..\..\Allgemein\Network\Network;../../../Network/release/Network;..\..\..\..\Allgemein\sql\sql;../../../sql/release/sql;$(IncludePath)</IncludePath>
     <OutDir>$(RemoteRootDir)/Server/$(ProjectName)/release/</OutDir>
     <IntDir>$(RemoteRootDir)/Server/$(ProjectName)/release/</IntDir>
     <RemoteTargetPath>$(RemoteProjectDir)/$(TargetName)$(TargetExt)</RemoteTargetPath>
@@ -45,7 +45,7 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <TargetExt />
     <RemoteProjectDir>$(RemoteRootDir)/Server/$(ProjectName)/debug</RemoteProjectDir>
-    <IncludePath>..\..\..\..\Allgemein\Framework;../../../Framework/debug;..\..\..\..\Allgemein\Network\Network;../../../Network/debug;..\..\..\..\Allgemein\sql\sql;../../../sql/debug;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\Allgemein\Framework;../../../Framework/debug;..\..\..\..\Allgemein\Network\Network;../../../Network/debug/Network;..\..\..\..\Allgemein\sql\sql;../../../sql/debug/sql;$(IncludePath)</IncludePath>
     <OutDir>$(RemoteRootDir)/Server/$(ProjectName)/debug/</OutDir>
     <IntDir>$(RemoteRootDir)/Server/$(ProjectName)/debug/</IntDir>
     <RemoteTargetPath>$(RemoteProjectDir)/$(TargetName)$(TargetExt)</RemoteTargetPath>
@@ -62,15 +62,17 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Link>
       <AdditionalLibraryDirectories>$(RemoteRootDir)/sql/release;$(RemoteRootDir)/Network/release;$(RemoteRootDir)/Framework/release;/usr/lib/;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <LibraryDependencies>Framework;Network;SQL;pq;pthread</LibraryDependencies>
+      <LibraryDependencies>Framework;Network;SQL;pq;pthread;ssl</LibraryDependencies>
       <AdditionalOptions>-Wl,-rpath,../lib %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(RemoteProjectDir)/$(TargetName)$(TargetExt)</OutputFile>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <Link>
       <AdditionalLibraryDirectories>$(RemoteRootDir)/sql/debug;$(RemoteRootDir)/Network/debug;$(RemoteRootDir)/Framework/debug;/usr/lib/;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <LibraryDependencies>dbgFramework;dbgNetwork;dbgSQL;pq;pthread</LibraryDependencies>
+      <LibraryDependencies>dbgFramework;dbgNetwork;dbgSQL;pq;pthread;ssl</LibraryDependencies>
       <AdditionalOptions>-Wl,-rpath,../lib %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(RemoteProjectDir)/$(TargetName)$(TargetExt)</OutputFile>
     </Link>
   </ItemDefinitionGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+ 32 - 32
PatchServer/main.cpp

@@ -7,31 +7,31 @@
 
 int main()
 {
-	struct rlimit core_limits;
-	core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
-	setrlimit(RLIMIT_CORE, &core_limits);
+    struct rlimit core_limits;
+    core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
+    setrlimit( RLIMIT_CORE, &core_limits );
 
     Framework::initFramework();
-	Zeit *z = getZeit();
-	Text *pfad = new Text( "../log/patch/" );
-	pfad->append( z->getZeit( "y-m-d h-i-s.log" ) );
-	z->release();
-	DateiPfadErstellen( pfad->getThis() );
-	std::ofstream file;
-	file.open( pfad->getText() );
-	std::streambuf* sbuf = std::cout.rdbuf();
-	std::cout.rdbuf( file.rdbuf() );
-	pfad->release();
+    Zeit *z = getZeit();
+    Text *pfad = new Text( "../log/patch/" );
+    pfad->append( z->getZeit( "y-m-d h-i-s.log" ) );
+    z->release();
+    DateiPfadErstellen( pfad->getText() );
+    std::ofstream file;
+    file.open( pfad->getText() );
+    std::streambuf *sbuf = std::cout.rdbuf();
+    std::cout.rdbuf( file.rdbuf() );
+    pfad->release();
 
-	std::cout << "PS: Startet...\n";
-	std::cout << "PS: Lese init Datei ../data/psInit.ini ...\n";
-	InitDatei *dat = new InitDatei( "../data/psInit.ini" );
-	if( !dat->laden() )
-	{
-		std::cout << "PS: error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
-		dat->release();
-		exit( 1 );
-	}
+    std::cout << "PS: Startet...\n";
+    std::cout << "PS: Lese init Datei ../data/psInit.ini ...\n";
+    InitDatei *dat = new InitDatei( "../data/psInit.ini" );
+    if( !dat->laden() )
+    {
+        std::cout << "PS: error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
+        dat->release();
+        exit( 1 );
+    }
     const char *wichtig[] = { "ServerId", "DBBenutzer", "DBPasswort", "DBName", "DBIP", "DBPort", "Aktiv", "SystemPfad", "SSLCert", "SSLKey", "SSLPasswort" };
     for( const char *w : wichtig )
     {
@@ -43,17 +43,17 @@ int main()
         }
     }
 
-	PatchServer *pserver = new PatchServer( dat );
+    PatchServer *pserver = new PatchServer( dat );
 
-	std::cout << "PS: Der Admin Server läuft. Startforgang beendet.\n";
-	pserver->runn();
+    std::cout << "PS: Der Admin Server läuft. Startforgang beendet.\n";
+    pserver->runn();
 
-	pserver->ende();
-	pserver->release();
-	dat->release();
-	std::cout << "PS: Der Server ist heruntergefahren.\n";
-	file.close();
-	std::cout.rdbuf( sbuf );
+    pserver->ende();
+    pserver->release();
+    dat->release();
+    std::cout << "PS: Der Server ist heruntergefahren.\n";
+    file.close();
+    std::cout.rdbuf( sbuf );
     Framework::releaseFramework();
-	return 0;
+    return 0;
 }