int main(int argc, char *argv[]) { std::cout << "Graal Online Serverlist Dump Utility." << std::endl; std::cout << "Written by Nalin." << std::endl << std::endl; // Arguments! if (argc > 1) { for (int i = 1; i < argc; ++i) { if (strncmp("--", argv[i], 2) == 0) { if (strcmp("simple", argv[i] + 2) == 0) SimpleMode = true; else if (strcmp("daemon", argv[i] + 2) == 0) Daemon = true; else if (strcmp("verbose", argv[i] + 2) == 0) Verbose = true; else if (strcmp("file", argv[i] + 2) == 0 && (i + 1) < argc) { OutputFile = argv[i + 1]; ++i; } else if (strcmp("help", argv[i] + 2) == 0) { PrintHelp(argv[0]); return 0; } } else if (strncmp("-", argv[i], 1) == 0) { unsigned int slen = strlen(argv[i]); for (unsigned int j = 1; j < slen; ++j) { char o = *(argv[i] + j); switch (o) { case 's': SimpleMode = true; break; case 'd': Daemon = true; break; case 'v': Verbose = true; break; case 'f': if ((i + 1) < argc) { OutputFile = argv[i + 1]; j = 0xFFFFFFFF - 1; ++i; } break; default: case 'h': PrintHelp(argv[0]); return 0; } } } } } CSocketManager mgr; CConnection c; if (!c.init()) return 1; do { // Register our class with the socket manager. if (Verbose) std::cout << "Registering with the socket manager." << std::endl; mgr.registerSocket(&c); mgr.update(); // Run program. while (!mgr.empty()) mgr.update(1, 0); if (!Verbose) std::cout << "Disconnected." << std::endl; if (Daemon) { #ifdef WINDOWS //Sleep(300000); Sleep(60000); #else sleep(300); #endif if (!c.init()) Daemon = false; } } while (Daemon); return 0; }