From 01489b9930025bed3c5bfc34b6c86045cbaccb46 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 15 Dec 2010 14:35:22 +0100 Subject: Deharcoded the host and port options for each servers. Changes: ============================================================ For the account server: ------------------------------------------------------------ Old -> New ------------------------------------------------------------ net_accountServerAddress, net_listenHost -> net_accountHost net_accountServerPort -> net_accountListenToClientPort net_accountServerPort +1 -> net_accountListenToGamePort For the game server: ------------------------------------------------------------ Old -> New ------------------------------------------------------------ net_gameServerAddress -> net_gameHost net_gameServerPort -> net_gameListenToClientPort For the chat server: ------------------------------------------------------------ Old -> New ------------------------------------------------------------ -> net_chatHost net_accountServerPort + 2 -> net_chatListenToClientPort Special fallback feature, as requested by Freeyorp: When the net_accountListenToClientPort (default to 9601) is set, the 3 others ports will automatically offset from it, if they're not set, following this rule: net_accountListenToGamePort = net_accountListenToClientPort + 1 net_chatListenToClientPort = net_accountListenToClientPort + 2 net_gameListenToClientPort = net_accountListenToClientPort + 3 Resolves: Mana-Mantis #216. Reviewed-by: Jaxad0127. --- src/account-server/main-account.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'src/account-server/main-account.cpp') diff --git a/src/account-server/main-account.cpp b/src/account-server/main-account.cpp index 9516b4d1..a0e935dd 100644 --- a/src/account-server/main-account.cpp +++ b/src/account-server/main-account.cpp @@ -368,15 +368,30 @@ int main(int argc, char *argv[]) options.verbosity) ); Logger::setVerbosity(options.verbosity); + std::string accountHost = Configuration::getValue("net_accountHost", + "localhost"); + + // We separate the chat host as the chat server will be separated out + // from the account server. + std::string chatHost = Configuration::getValue("net_chatHost", + "localhost"); + + // Setting the listen ports + // Note: The accountToGame and chatToClient listen ports auto offset + // to accountToClient listen port when they're not set, + // or to DEFAULT_SERVER_PORT otherwise. if (!options.portChanged) - options.port = Configuration::getValue("net_accountServerPort", + options.port = Configuration::getValue("net_accountListenToClientPort", options.port); + int accountGamePort = Configuration::getValue("net_accountListenToGamePort", + options.port + 1); + int chatClientPort = Configuration::getValue("net_chatListenToClientPort", + options.port + 2); - std::string host = Configuration::getValue("net_listenHost", std::string()); if (!AccountClientHandler::initialize(DEFAULT_ATTRIBUTEDB_FILE, - options.port, host) || - !GameServerHandler::initialize(options.port + 1, host) || - !chatHandler->startListen(options.port + 2, host)) + options.port, accountHost) || + !GameServerHandler::initialize(accountGamePort, accountHost) || + !chatHandler->startListen(chatClientPort, chatHost)) { LOG_FATAL("Unable to create an ENet server host."); return EXIT_NET_EXCEPTION; -- cgit v1.2.3-60-g2f50