Quellcode durchsuchen

Automatische core dump erzeugung bei servercrash

Kolja Strohm vor 6 Jahren
Ursprung
Commit
7a3b418551

+ 13 - 13
AnmeldungServer/AnmeldungServer.cpp

@@ -281,7 +281,7 @@ char *AnmeldungServer::getLetzterFehler() const
 
 char *AnmeldungServer::getIp() const
 {
-	return ini->zWert( "ServerIP" )->getText();
+	return ini->zWert( "ServerIp" )->getText();
 }
 
 // Reference Counting
@@ -1249,7 +1249,7 @@ bool MsgWeiterleitung::spielerBetrittGruppe( int gruppeId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1296,7 +1296,7 @@ bool MsgWeiterleitung::spielerLeavesGruppe( int gruppeId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1343,7 +1343,7 @@ bool MsgWeiterleitung::setGruppeAdmin( int gruppeId, int admin )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1382,7 +1382,7 @@ bool MsgWeiterleitung::kickSpielerAusGruppe( int accountId, int gruppeId )
 	if( ip->getLength() )
 	{
 		Klient *klient = new Klient();
-		unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+		unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 		klient->setSendeKey( (char*)key, 20 );
 		klient->setEmpfangKey( (char*)key, 20 );
 		ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1427,7 +1427,7 @@ bool MsgWeiterleitung::gruppenNachricht( int gruppeId, char *txt )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1474,7 +1474,7 @@ bool MsgWeiterleitung::gruppeAngemeldet( int gruppeId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1518,7 +1518,7 @@ bool MsgWeiterleitung::gruppeAbgemeldet( int gruppeId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1562,7 +1562,7 @@ bool MsgWeiterleitung::gruppeSpielStarten( int gruppeId, bool starten )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1602,7 +1602,7 @@ bool MsgWeiterleitung::spielEinladung( int gruppeId, int accountId )
 	if( ip->getLength() )
 	{
 		Klient *klient = new Klient();
-		unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+		unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 		klient->setSendeKey( (char*)key, 20 );
 		klient->setEmpfangKey( (char*)key, 20 );
 		ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1638,7 +1638,7 @@ bool MsgWeiterleitung::spielEinladung( int gruppeId, int accountId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1683,7 +1683,7 @@ bool MsgWeiterleitung::spielEinladungAbbrechen( int gruppeId, int accountId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );
@@ -1728,7 +1728,7 @@ bool MsgWeiterleitung::spielEinladungAblehnen( int gruppeId )
 		if( ip->getLength() )
 		{
 			Klient *klient = new Klient();
-			unsigned char key[ 20 ] = { 79, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
+			unsigned char key[ 20 ] = { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 };
 			klient->setSendeKey( (char*)key, 20 );
 			klient->setEmpfangKey( (char*)key, 20 );
 			ret = ret & klient->verbinde( (unsigned short)port, ip->getText() );

+ 3 - 0
AnmeldungServer/AnmeldungServer.vcxproj

@@ -70,6 +70,9 @@
       <AdditionalLibraryDirectories>$(RemoteRootDir)/sql/debug/bin/x64/debug;$(RemoteRootDir)/Network/debug/bin/x64/debug;$(RemoteRootDir)/Framework/debug/bin/x64/debug;/usr/lib/;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>-Wl,-rpath,../lib %(AdditionalOptions)</AdditionalOptions>
     </Link>
+    <ClCompile>
+      <PreprocessorDefinitions>DEBUG</PreprocessorDefinitions>
+    </ClCompile>
   </ItemDefinitionGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets" />

+ 4 - 7
AnmeldungServer/Datenbank.cpp

@@ -15,7 +15,7 @@ ASDatenbank::ASDatenbank( InitDatei *zIni )
     }
     InitializeCriticalSection( &cs );
     ref = 1;
-    Text befehl = "SELECT port, admin_port  FROM server WHERE id = ";
+    Text befehl = "SELECT port, admin_port, ip  FROM server WHERE id = ";
     befehl += zIni->zWert( "ServerId" )->getText();
     lock();
     datenbank->befehl( befehl );
@@ -25,6 +25,7 @@ ASDatenbank::ASDatenbank( InitDatei *zIni )
     {
         zIni->addWert( "ServerPort", res.values[ 0 ] );
         zIni->addWert( "AdminServerPort", res.values[ 1 ] );
+        zIni->addWert( "ServerIp", res.values[ 2 ] );
     }
     res.destroy();
 }
@@ -92,14 +93,10 @@ bool ASDatenbank::proveKlient( int num, int sNum )
     befehl->append( num );
     lock();
     datenbank->befehl( befehl->getText() );
-    Result res = datenbank->getResult();
+    int ret = datenbank->getZeilenAnzahl();
     unlock();
     befehl->release();
-    bool ret = 0;
-    if( res.zeilenAnzahl == 1 )
-        ret = 1;
-    res.destroy();
-    return ret;
+    return ret == 1;
 }
 
 Text *ASDatenbank::getKlientKey( int cId )

+ 6 - 1
AnmeldungServer/main.cpp

@@ -3,11 +3,16 @@
 #include <iostream>
 #include <fstream>
 #include <Globals.h>
+#include <sys/socket.h>
+#include <sys/resource.h>
 
 int main()
 {
+	struct rlimit core_limits;
+	core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
+	setrlimit(RLIMIT_CORE, &core_limits);
 #ifdef DEBUG
-    cd( "/test/anmeldung" );
+    chdir( "/test/anmeldung" );
 #endif
     Framework::initFramework();
     Zeit *z = getZeit();