12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include <iostream>
- #include <fstream>
- #include <Zeit.h>
- #include <Datei.h>
- #include <Text.h>
- #include <Globals.h>
- #include <sys/resource.h>
- #include <Klient.h>
- #include <cstdlib>
- #include <csignal>
- #include "Server.h"
- FactoryCraftServer* mserver = 0;
- void exit()
- {
- std::cout << "Der Server wird beendet...\n";
- if (mserver)
- mserver->close();
- }
- int main()
- {
- initializeBlockTypes();
- initializeItemTypes();
- initializeEntityTypes();
- initializeDimensions();
- initializeMultiblockTypes();
-
- 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/");
- 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 << "Startet...\n";
- std::cout << "Lese init Datei fcInit.ini ...\n";
- InitDatei* dat = new InitDatei("fcInit.ini");
- if (!dat->laden())
- {
- std::cout << "error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
- dat->release();
- file.close();
- std::cout.rdbuf(sbuf);
- exit(1);
- }
- const char* wichtig[] = { "SSLPort", "SSLCert", "SSLKey", "SSLPasswort", "Port" };
- for (const char* w : wichtig)
- {
- if (!dat->wertExistiert(w))
- {
- std::cout << "error: Der Wert '" << w << "' wurde nicht gefunden. Das Programm wird geschlossen.\n";
- dat->release();
- file.close();
- std::cout.rdbuf(sbuf);
- exit(1);
- }
- }
- mserver = new FactoryCraftServer(dat);
- std::atexit(exit);
- signal(SIGTERM, exit);
- signal(SIGSEGV, exit);
- signal(SIGILL, exit);
- signal(SIGABRT, exit);
- signal(SIGFPE, exit);
- signal(SIGINT, exit);
- std::cout << "Der Server läuft. Startforgang beendet.\n";
- mserver->run();
- mserver->release();
- mserver = 0;
- dat->release();
- std::cout << "Der Server ist heruntergefahren.\n";
- file.close();
- std::cout.rdbuf(sbuf);
- Framework::releaseFramework();
- return 0;
- }
|