diff --git a/release/config.txt b/release/config.txt index 99100bd..aaca363 100644 --- a/release/config.txt +++ b/release/config.txt @@ -19,4 +19,5 @@ input1=1 ## ONLINE OPTIONS enabled=false server= +port= jailerID= diff --git a/source/common/jscore.cpp b/source/common/jscore.cpp index 2829864..bb9e7cd 100644 --- a/source/common/jscore.cpp +++ b/source/common/jscore.cpp @@ -26,8 +26,9 @@ namespace jscore { #define bzero(b,len) (memset((b), '\0', (len)), (void) 0) int sock; struct sockaddr_in client; + int PORT = 9911; - const char *HOST = "jaildoctor.duckdns.org"; + string HOST = "jaildoctor.duckdns.org"; #ifdef WIN32 WSADATA WsaData; @@ -36,6 +37,11 @@ namespace jscore { bool jscore_error = false; string error_message; + void init(std::string host, const int port) { + PORT = port; + HOST = host; + } + void setErrorMessage(string message) { jscore_error = true; error_message = message; @@ -46,7 +52,7 @@ namespace jscore { int ret = WSAStartup(0x101,&WsaData); if (ret != 0) return 0; #endif - struct hostent * host = gethostbyname(HOST); + struct hostent * host = gethostbyname(HOST.c_str()); if ( (host == NULL) || (host->h_addr == NULL) ) { setErrorMessage("Error retrieving DNS information.\n"); diff --git a/source/common/jscore.h b/source/common/jscore.h index 43feb9b..8378a4a 100644 --- a/source/common/jscore.h +++ b/source/common/jscore.h @@ -2,6 +2,7 @@ #include namespace jscore { + void init(std::string host, const int port); const bool initOnlineScore(std::string game); const int getNumUsers(); std::string getUserName(const int index); diff --git a/source/common/utils.h b/source/common/utils.h index 5649157..2ed99de 100644 --- a/source/common/utils.h +++ b/source/common/utils.h @@ -88,6 +88,7 @@ struct online_t { bool enabled; // Indica si se quiere usar el modo online o no std::string server; // Servidor para los servicios online + int port; // Puerto del servidor std::string gameID; // Identificador del juego para los servicios online std::string jailerID; // Identificador del jugador para los servicios online int score; // Puntuación almacenada online diff --git a/source/director.cpp b/source/director.cpp index de2a277..00a7de7 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -454,6 +454,7 @@ bool Director::saveConfigFile() file << "\n## ONLINE OPTIONS\n"; file << "enabled=" + boolToString(options->online.enabled) + "\n"; file << "server=" + options->online.server + "\n"; + file << "port=" + std::to_string(options->online.port) + "\n"; file << "jailerID=" + options->online.jailerID + "\n"; // Cierra el fichero @@ -542,6 +543,9 @@ void Director::initOnline() else { // Jailer ID iniciado + // Establece el servidor y el puerto + jscore::init(options->online.server, options->online.port); + // Obtiene la información online if (jscore::initOnlineScore(options->online.gameID)) { @@ -680,6 +684,11 @@ bool Director::setOptions(options_t *options, std::string var, std::string value options->online.server = value; } + else if (var == "port") + { + options->online.port = std::stoi(value); + } + else if (var == "jailerID") { options->online.jailerID = value;