Kaynağa Gözat

fix compiler errors

Kolja Strohm 3 yıl önce
ebeveyn
işleme
a6f2579002

+ 57 - 72
RegisterServer/Datenbank.cpp

@@ -6,17 +6,17 @@
 // Inhalt der RSDatenbank Klasse aus Datenbank.h
 // Konstruktor
 RSDatenbank::RSDatenbank( InitDatei *zIni )
+    : ReferenceCounter()
 {
     datenbank = new Datenbank( zIni->zWert( "DBBenutzer" )->getText(), zIni->zWert( "DBPasswort" )->getText(),
-        zIni->zWert( "DBName" )->getText(), zIni->zWert( "DBIP" )->getText(),
-        (unsigned short)TextZuInt( zIni->zWert( "DBPort" )->getText(), 10 ) );
+                               zIni->zWert( "DBName" )->getText(), zIni->zWert( "DBIP" )->getText(),
+                               (unsigned short)TextZuInt( zIni->zWert( "DBPort" )->getText(), 10 ) );
     if( !datenbank->istOk() )
     {
         std::cout << "AS: Die Verbindung zur Datenbank konnte nicht hergestellt werden.\nDas Programm wird beendet.";
         exit( 1 );
     }
     InitializeCriticalSection( &cs );
-    ref = 1;
     Text befehl = "SELECT port, admin_port  FROM server WHERE id = ";
     befehl += zIni->zWert( "ServerId" )->getText();
     lock();
@@ -54,11 +54,11 @@ int RSDatenbank::istAdministrator( const char *name, const char *passwort )
     Text *befehl = new Text( "SELECT id FROM benutzer WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "' AND passwort = md5( '" );
     Text p( passwort );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -212,11 +212,11 @@ int RSDatenbank::proveNeuAccount( const char *name, const char *eMail )
     Text *befehl = new Text( "SELECT account_neu_alt_check( '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "', '" );
     Text m( eMail );
     m.ersetzen( "'", "''" );
-    befehl->append( (char*)m );
+    befehl->append( (char *)m );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -232,9 +232,9 @@ int RSDatenbank::proveNeuAccount( const char *name, const char *eMail )
     {
         res.destroy();
         befehl->setText( "SELECT account.id FROM account, account_neu WHERE account.name = '" );
-        befehl->append( (char*)n );
+        befehl->append( (char *)n );
         befehl->append( "' OR account_neu.name = '" );
-        befehl->append( (char*)n );
+        befehl->append( (char *)n );
         befehl->append( "'" );
         lock();
         datenbank->befehl( befehl->getText() );
@@ -260,30 +260,30 @@ bool RSDatenbank::neuAccount( const char *name, const char *pass, const char *ge
     Text *befehl = new Text( "INSERT INTO account_neu( name, passwort, geheimnis, e_mail, geb_datum ) VALUES ( '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "', md5( '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ), '" );
     Text g( geheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "', '" );
     Text m( eMail );
     m.ersetzen( "'", "''" );
-    befehl->append( (char*)m );
+    befehl->append( (char *)m );
     befehl->append( "', '" );
     Text d( gebDatum );
     d.ersetzen( "'", "''" );
-    befehl->append( (char*)d );
+    befehl->append( (char *)d );
     befehl->append( "' )" );
     lock();
     if( datenbank->befehl( befehl->getText() ) )
     {
         unlock();
         befehl->setText( "SELECT schluessel, id FROM account_neu WHERE name = '" );
-        befehl->append( (char*)n );
+        befehl->append( (char *)n );
         befehl->append( "'" );
         lock();
         datenbank->befehl( befehl->getText() );
@@ -293,7 +293,7 @@ bool RSDatenbank::neuAccount( const char *name, const char *pass, const char *ge
         {
             // e_mail senden
             pid_t pid;
-            char *pargs[] = { zIni->zWert( "PHP" )->getText(), zIni->zWert( "AccountActivationMail" )->getText(), (char*)name, (char*)geheim, (char*)gebDatum, res.values[ 0 ].getText(), (char*)eMail, res.values[ 1 ].getText(), (char*)0 };
+            char *pargs[] = { zIni->zWert( "PHP" )->getText(), zIni->zWert( "AccountActivationMail" )->getText(), (char *)name, (char *)geheim, (char *)gebDatum, res.values[ 0 ].getText(), (char *)eMail, res.values[ 1 ].getText(), (char *)0 };
             posix_spawn( &pid, zIni->zWert( "PHP" )->getText(), 0, 0, pargs, 0 );
         }
         res.destroy();
@@ -310,15 +310,15 @@ int RSDatenbank::removeAccount( const char *name, const char *pass, const char *
     Text *befehl = new Text( "SELECT account_loeschen( '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "', md5( '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ), '" );
     Text g( geheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -329,7 +329,7 @@ int RSDatenbank::removeAccount( const char *name, const char *pass, const char *
     if( !ret )
     {
         befehl->setText( "SELECT account_loeschen.schluessel, account.e_mail FROM account, account_loeschen WHERE account.id = account_loeschen.account_id AND account.name = '" );
-        befehl->append( (char*)n );
+        befehl->append( (char *)n );
         befehl->append( "'" );
         lock();
         datenbank->befehl( befehl->getText() );
@@ -348,7 +348,7 @@ int RSDatenbank::removeAccount( const char *name, const char *pass, const char *
                 md.close();
                 // e_mail senden
                 pid_t pid;
-                char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), res.values[ 0 ].getText(), (char*)0 };
+                char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), res.values[ 0 ].getText(), (char *)0 };
                 posix_spawn( &pid, zIni->zWert( "Java" )->getText(), 0, 0, pargs, 0 );
             }
         }
@@ -363,7 +363,7 @@ void RSDatenbank::removeAccountAbbruch( const char *name )
     Text *befehl = new Text( "DELETE FROM account_loeschen WHERE account_id = ( SELECT id FROM account where name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -376,11 +376,11 @@ bool RSDatenbank::removeConfirmation( const char *name, const char *key )
     Text *befehl = new Text( "SELECT account_loeschen_bestaetigen( '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "', '" );
     Text s( key );
     s.ersetzen( "'", "''" );
-    befehl->append( (char*)s );
+    befehl->append( (char *)s );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -398,14 +398,14 @@ bool RSDatenbank::removeConfirmation( const char *name, const char *key )
 
 int RSDatenbank::passwortChange( const char *name, const char *pass, const char *nPass, const char *geheim )
 {
-    Text * befehl = new Text( "SELECT id, passwort, geheimnis, md5( '" );
+    Text *befehl = new Text( "SELECT id, passwort, geheimnis, md5( '" );
     Text p( name );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) FROM account WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -432,7 +432,7 @@ int RSDatenbank::passwortChange( const char *name, const char *pass, const char
     befehl->setText( "UPDATE account SET passwort = md5( '" );
     p = Text( nPass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) WHERE id = " );
     befehl->append( res.values[ 0 ].getText() );
     res.destroy();
@@ -448,11 +448,11 @@ int RSDatenbank::eMailChange( const char *name, const char *pass, const char *ge
     Text *befehl = new Text( "SELECT id, passwort, geheimnis, md5( '" );
     Text p( name );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) FROM account WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -479,7 +479,7 @@ int RSDatenbank::eMailChange( const char *name, const char *pass, const char *ge
     befehl->setText( "Update account SET e_mail = '" );
     Text m( eMail );
     m.ersetzen( "'", "''" );
-    befehl->append( (char*)m );
+    befehl->append( (char *)m );
     befehl->append( "' WHERE id = " );
     befehl->append( res.values[ 0 ].getText() );
     res.destroy();
@@ -494,14 +494,14 @@ int RSDatenbank::eMailChange( const char *name, const char *pass, const char *ge
 
 int RSDatenbank::geheimnisChange( const char *name, const char *pass, const char *geheim, const char *nGeheim )
 {
-    Text * befehl = new Text( "SELECT id, passwort, geheimnis, md5( '" );
+    Text *befehl = new Text( "SELECT id, passwort, geheimnis, md5( '" );
     Text p( name );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) FROM account WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -528,7 +528,7 @@ int RSDatenbank::geheimnisChange( const char *name, const char *pass, const char
     befehl->setText( "UPDATE account SET geheimnis = '" );
     Text g( nGeheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "' WHERE id = " );
     befehl->append( res.values[ 0 ].getText() );
     res.destroy();
@@ -544,11 +544,11 @@ bool RSDatenbank::nameVergessen( const char *pass, const char *geheim, InitDatei
     Text *befehl = new Text( "SELECT name, e_mail FROM account WHERE passwort = md5( '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) AND geheimnis = '" );
     Text g( geheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -576,10 +576,10 @@ bool RSDatenbank::nameVergessen( const char *pass, const char *geheim, InitDatei
             md.close();
             // e_mail senden
             pid_t pid;
-            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char*)0 };
+            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char *)0 };
             posix_spawn( &pid, zIni->zWert( "Java" )->getText(), 0, 0, pargs, 0 );
+        }
     }
-}
     res.destroy();
     return 1;
 }
@@ -592,17 +592,17 @@ bool RSDatenbank::passwortVergessen( const char *name, const char *geheim, InitD
     Result res = datenbank->getResult();
     unlock();
     befehl->setText( "UPDATE account SET passwort = md5( '" );
-    Text pass( (char*)res.values[ 0 ] );
+    Text pass( (char *)res.values[ 0 ] );
     res.destroy();
-    befehl->append( (char*)pass );
+    befehl->append( (char *)pass );
     befehl->append( "' ) WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "' AND geheimnis = '" );
     Text g( geheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "' RETURNING e_mail" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -630,10 +630,10 @@ bool RSDatenbank::passwortVergessen( const char *name, const char *geheim, InitD
             md.close();
             // e_mail senden
             pid_t pid;
-            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char*)0 };
+            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char *)0 };
             posix_spawn( &pid, zIni->zWert( "Java" )->getText(), 0, 0, pargs, 0 );
+        }
     }
-}
     res.destroy();
     return 1;
 }
@@ -643,11 +643,11 @@ bool RSDatenbank::geheimnisVergessen( const char *name, const char *pass, InitDa
     Text *befehl = new Text( "SELECT geheimnis, e_mail FROM account WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "' AND passwort = md5( '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -675,10 +675,10 @@ bool RSDatenbank::geheimnisVergessen( const char *name, const char *pass, InitDa
             md.close();
             // e_mail senden
             pid_t pid;
-            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char*)0 };
+            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), pfad, (char *)0 };
             posix_spawn( &pid, zIni->zWert( "Java" )->getText(), 0, 0, pargs, 0 );
+        }
     }
-}
     res.destroy();
     return 1;
 }
@@ -688,15 +688,15 @@ Text *RSDatenbank::eMailVergessen( const char *name, const char *pass, const cha
     Text *befehl = new Text( "SELECT e_mail FROM account WHERE name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "' AND passwort = md5( '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' ) AND geheimnis = '" );
     Text g( geheim );
     g.ersetzen( "'", "''" );
-    befehl->append( (char*)g );
+    befehl->append( (char *)g );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -718,11 +718,11 @@ char RSDatenbank::suchConfirmation( const char *name, const char *pass )
     Text *befehl = new Text( "select such_account_bestaetigung( '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "', '" );
     Text p( pass );
     p.ersetzen( "'", "''" );
-    befehl->append( (char*)p );
+    befehl->append( (char *)p );
     befehl->append( "' )" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -739,7 +739,7 @@ void RSDatenbank::sendeRemoveEMail( const char *name, InitDatei *zIni )
     Text *befehl = new Text( "SELECT account_loeschen.schluessel, account.e_mail FROM account, account_loeschen WHERE account.id = account_loeschen.account_id AND account.name = '" );
     Text n( name );
     n.ersetzen( "'", "''" );
-    befehl->append( (char*)n );
+    befehl->append( (char *)n );
     befehl->append( "'" );
     lock();
     datenbank->befehl( befehl->getText() );
@@ -759,10 +759,10 @@ void RSDatenbank::sendeRemoveEMail( const char *name, InitDatei *zIni )
             md.close();
             // e_mail senden
             pid_t pid;
-            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), res.values[ 0 ].getText(), (char*)0 };
+            char *pargs[] = { zIni->zWert( "Java" )->getText(), zIni->zWert( "Mailer" )->getText(), res.values[ 0 ].getText(), (char *)0 };
             posix_spawn( &pid, zIni->zWert( "Java" )->getText(), 0, 0, pargs, 0 );
+        }
     }
-}
     res.destroy();
 }
 
@@ -770,19 +770,4 @@ void RSDatenbank::sendeRemoveEMail( const char *name, InitDatei *zIni )
 Text *RSDatenbank::getLetzterFehler() const
 {
     return datenbank->getLetzterFehler();
-}
-
-// Reference Counting
-RSDatenbank *RSDatenbank::getThis()
-{
-    ref++;
-    return this;
-}
-
-RSDatenbank *RSDatenbank::release()
-{
-    ref--;
-    if( !ref )
-        delete this;
-    return 0;
 }

+ 38 - 42
RegisterServer/Datenbank.h

@@ -10,54 +10,50 @@ using namespace sql;
 
 namespace Admin_Recht
 {
-	const int RSStarten = 8;
-	const int RSBeenden = 9;
-	const int RSPausieren = 10;
-	const int RSMCChange = 11;
+    const int RSStarten = 8;
+    const int RSBeenden = 9;
+    const int RSPausieren = 10;
+    const int RSMCChange = 11;
 }
 
-class RSDatenbank
+class RSDatenbank : public virtual ReferenceCounter
 {
 private:
-	Datenbank *datenbank;
-	CRITICAL_SECTION cs;
-	int ref;
+    Datenbank *datenbank;
+    CRITICAL_SECTION cs;
 
 public:
-	// Konstruktor
-	RSDatenbank( InitDatei *zIni );
-	// Destruktor
-	~RSDatenbank();
-	// 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 );
-	int proveNeuAccount( const char *name, const char *eMail );
-	bool neuAccount( const char *name, const char *pass, const char *geheim, const char *eMail, const char *gebDatum, InitDatei *zIni );
-	int removeAccount( const char *name, const char *pass, const char *geheim, InitDatei *zIni );
-	void removeAccountAbbruch( const char *name );
-	bool removeConfirmation( const char *name, const char *key );
-	int passwortChange( const char *name, const char *pass, const char *nPass, const char *geheim );
-	int eMailChange( const char *name, const char *pass, const char *geheim, const char *eMail );
-	int geheimnisChange( const char *name, const char *pass, const char *geheim, const char *nGeheim );
-	bool nameVergessen( const char *pass, const char *geheim, InitDatei *zIni );
-	bool passwortVergessen( const char *name, const char *geheim, InitDatei *zIni );
-	bool geheimnisVergessen( const char *name, const char *pass, InitDatei *zIni );
-	Text *eMailVergessen( const char *name, const char *pass, const char *geheim );
-	char suchConfirmation( const char *name, const char *pass );
-	void sendeRemoveEMail( const char *name, InitDatei *zIni );
-	// constant
-	Text *getLetzterFehler() const;
-	// Reference Counting
-	RSDatenbank *getThis();
-	RSDatenbank *release();
+    // Konstruktor
+    RSDatenbank( InitDatei *zIni );
+    // Destruktor
+    ~RSDatenbank();
+    // 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 );
+    int proveNeuAccount( const char *name, const char *eMail );
+    bool neuAccount( const char *name, const char *pass, const char *geheim, const char *eMail, const char *gebDatum, InitDatei *zIni );
+    int removeAccount( const char *name, const char *pass, const char *geheim, InitDatei *zIni );
+    void removeAccountAbbruch( const char *name );
+    bool removeConfirmation( const char *name, const char *key );
+    int passwortChange( const char *name, const char *pass, const char *nPass, const char *geheim );
+    int eMailChange( const char *name, const char *pass, const char *geheim, const char *eMail );
+    int geheimnisChange( const char *name, const char *pass, const char *geheim, const char *nGeheim );
+    bool nameVergessen( const char *pass, const char *geheim, InitDatei *zIni );
+    bool passwortVergessen( const char *name, const char *geheim, InitDatei *zIni );
+    bool geheimnisVergessen( const char *name, const char *pass, InitDatei *zIni );
+    Text *eMailVergessen( const char *name, const char *pass, const char *geheim );
+    char suchConfirmation( const char *name, const char *pass );
+    void sendeRemoveEMail( const char *name, InitDatei *zIni );
+    // constant
+    Text *getLetzterFehler() const;
 };
 
 #endif

BIN
RegisterServer/RegisterServer


+ 20 - 20
RegisterServer/RegisterServer.cpp

@@ -16,7 +16,7 @@ RegisterServer::RegisterServer( InitDatei *zIni )
     empfangen = 0;
     gesendet = 0;
     fehler = new Text();
-    ini = zIni->getThis();
+    ini = dynamic_cast<InitDatei *>( zIni->getThis() );
     id = *zIni->zWert( "ServerId" );
     server = new Server();
     aServer = new SSLServer();
@@ -66,13 +66,13 @@ void RegisterServer::runn()
         if( end && klient )
         {
             klient->trenne();
-            klient = klient->release();
+            klient = (SSLSKlient *)klient->release();
             Sleep( 1000 );
             return;
         }
         if( !klient )
             continue;
-        RSAKlient * clHandle = new RSAKlient( klient, (RegisterServer *)getThis() );
+        RSAKlient *clHandle = new RSAKlient( klient, dynamic_cast<RegisterServer *>( getThis() ) );
         clHandle->start();
     }
 }
@@ -86,7 +86,7 @@ void RegisterServer::thread()
         if( !klient )
             continue;
         Framework::getThreadRegister()->cleanUpClosedThreads();
-        RSKlient * clHandle = new RSKlient( klient, (RegisterServer *)getThis() );
+        RSKlient *clHandle = new RSKlient( klient, dynamic_cast<RegisterServer *>( getThis() ) );
         EnterCriticalSection( &cs );
         klients->set( clHandle, klientAnzahl );
         klientAnzahl++;
@@ -105,13 +105,13 @@ void RegisterServer::close()
     EnterCriticalSection( &cs );
     for( int i = 0; i < klientAnzahl; i++ )
         klients->z( i )->absturz();
-    klients = klients->release();
+    klients = ( RCArray<RSKlient>* )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();
@@ -224,7 +224,7 @@ bool RegisterServer::absturzKlient( int klientId )
     return gefunden;
 }
 
-bool RegisterServer::removeKlient( RSKlient * zKlient )
+bool RegisterServer::removeKlient( RSKlient *zKlient )
 {
     bool gefunden = 0;
     EnterCriticalSection( &cs );
@@ -291,7 +291,7 @@ InitDatei *RegisterServer::zIni() const
 
 // Inhalt der RSAKlient Klasse aus RegisterServer.h
 // Konstruktor 
-RSAKlient::RSAKlient( SSLSKlient * klient, RegisterServer * rs )
+RSAKlient::RSAKlient( SSLSKlient *klient, RegisterServer *rs )
     : Thread()
 {
     this->klient = klient;
@@ -330,13 +330,13 @@ void RSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     unsigned char nLen = 0;
-                    klient->getNachricht( (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 );
+                    klient->getNachricht( (char *)&pLen, 1 );
                     char *p = new char[ pLen + 1 ];
                     p[ (int)pLen ] = 0;
                     if( pLen )
@@ -432,7 +432,7 @@ void RSAKlient::thread()
                     }
                     else
                         ok = 1;
-                    if( ok &&rs->hatClients() )
+                    if( ok && rs->hatClients() )
                     {
                         errorZuKlient( "Es sind noch Klients Online. Bitte versuche es später erneut." );
                         break;
@@ -528,7 +528,7 @@ void RSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     int maxC = 0;
-                    klient->getNachricht( (char *)& maxC, 4 );
+                    klient->getNachricht( (char *)&maxC, 4 );
                     if( rs->zDB()->adminHatRecht( adminId, Admin_Recht::RSMCChange ) )
                     {
                         if( rs->setMaxKlients( maxC ) )
@@ -550,8 +550,8 @@ void RSAKlient::thread()
                 {
                     klient->sende( "\1", 1 );
                     int klientId = 0;
-                    klient->getNachricht( (char *)& klientId, 4 );
-                    if( klientId &&rs->absturzKlient( klientId ) )
+                    klient->getNachricht( (char *)&klientId, 4 );
+                    if( klientId && rs->absturzKlient( klientId ) )
                         klient->sende( "\1", 1 );
                     else
                         klient->sende( "\0", 1 );
@@ -583,7 +583,7 @@ void RSAKlient::errorZuKlient( const char *nachricht ) const // sendet eine Fehl
 
 // Inhalt der RSKlasse aus RegisterServer.h
 // Konstruktor 
-RSKlient::RSKlient( SKlient * klient, RegisterServer * rs )
+RSKlient::RSKlient( SKlient *klient, RegisterServer *rs )
     : Thread()
 {
     this->klient = klient;
@@ -622,7 +622,7 @@ void RSKlient::thread()
             switch( c )
             {
             case 1: // Klient identifikation
-                klient->getNachrichtEncrypted( (char *)& klientNummer, 4 );
+                klient->getNachrichtEncrypted( (char *)&klientNummer, 4 );
                 if( !rs->zDB()->proveKlient( klientNummer, rs->getId() ) )
                 {
                     klientNummer = 0;
@@ -653,8 +653,8 @@ void RSKlient::thread()
                         if( 1 )
                         {
                             int klientId = 0;
-                            klient->getNachrichtEncrypted( (char *)& klientId, 4 );
-                            if( klientId &&rs->absturzKlient( klientId ) )
+                            klient->getNachrichtEncrypted( (char *)&klientId, 4 );
+                            if( klientId && rs->absturzKlient( klientId ) )
                                 klient->sendeEncrypted( "\1", 1 );
                             else
                                 klient->sendeEncrypted( "\0", 1 );
@@ -703,7 +703,7 @@ void RSKlient::thread()
                     acc_mail[ len[ 3 ] ] = 0;
                     klient->getNachrichtEncrypted( acc_mail, len[ 3 ] );
                     unsigned short acc_geb_jahr = 0;
-                    klient->getNachrichtEncrypted( (char *)& acc_geb_jahr, 2 );
+                    klient->getNachrichtEncrypted( (char *)&acc_geb_jahr, 2 );
                     char acc_geb_monat = 0;
                     klient->getNachrichtEncrypted( &acc_geb_monat, 1 );
                     char acc_geb_tag = 0;
@@ -1018,7 +1018,7 @@ void RSKlient::thread()
                     {
                         klient->sendeEncrypted( "\1", 1 );
                         unsigned char len = (unsigned char)eMail->getLength();
-                        klient->sendeEncrypted( (char *)& len, 1 );
+                        klient->sendeEncrypted( (char *)&len, 1 );
                         klient->sendeEncrypted( eMail->getText(), len );
                         eMail->release();
                     }

+ 6 - 4
RegisterServer/RegisterServer.vcxproj

@@ -37,7 +37,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>
@@ -45,7 +45,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>
@@ -62,15 +62,17 @@
   <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>
   <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>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+ 32 - 32
RegisterServer/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/register/" );
-	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/register/" );
+    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 << "RS: Startet...\n";
-	std::cout << "RS: Lese init Datei ../data/rsInit.ini ...\n";
-	InitDatei *dat = new InitDatei( "../data/rsInit.ini" );
-	if( !dat->laden() )
-	{
-		std::cout << "RS: error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
-		dat->release();
-		exit( 1 );
-	}
+    std::cout << "RS: Startet...\n";
+    std::cout << "RS: Lese init Datei ../data/rsInit.ini ...\n";
+    InitDatei *dat = new InitDatei( "../data/rsInit.ini" );
+    if( !dat->laden() )
+    {
+        std::cout << "RS: 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", "Java", "Mailer", "PHP", "AccountActivationMail", "SSLCert", "SSLKey", "SSLPasswort" };
     for( const char *w : wichtig )
     {
@@ -43,17 +43,17 @@ int main()
         }
     }
 
-	RegisterServer *rserver = new RegisterServer( dat );
+    RegisterServer *rserver = new RegisterServer( dat );
 
-	std::cout << "RS: Der Admin Server läuft. Startforgang beendet.\n";
-	rserver->runn();
+    std::cout << "RS: Der Admin Server läuft. Startforgang beendet.\n";
+    rserver->runn();
 
-	rserver->ende();
-	rserver->release();
-	dat->release();
-	std::cout << "RS: Der Server ist heruntergefahren.\n";
-	file.close();
-	std::cout.rdbuf( sbuf );
+    rserver->ende();
+    rserver->release();
+    dat->release();
+    std::cout << "RS: Der Server ist heruntergefahren.\n";
+    file.close();
+    std::cout.rdbuf( sbuf );
     Framework::releaseFramework();
-	return 0;
+    return 0;
 }