|
@@ -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;
|
|
|
}
|