From: h2so5 Date: Mon, 1 Oct 2012 05:39:23 +0000 (+0900) Subject: サーバー起動直度にクライアントを接続すると拒絶される問題を修正 X-Git-Tag: pv2_last~6 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=249c8755895adee21b0466b06514240925c151a4;hp=522d2f17d0929710d6ff27027c5b5e5f39eb6bfe;p=mmo%2Fmain.git サーバー起動直度にクライアントを接続すると拒絶される問題を修正 --- diff --git a/client/version.hpp b/client/version.hpp index 9de1226..d76f644 100644 --- a/client/version.hpp +++ b/client/version.hpp @@ -9,7 +9,7 @@ #define MMO_VERSION_MAJOR 0 #define MMO_VERSION_MINOR 3 -#define MMO_VERSION_REVISION 9 +#define MMO_VERSION_REVISION 10 #define MMO_PROTOCOL_VERSION 2 diff --git a/common/network/Session.cpp b/common/network/Session.cpp index 210e3cd..d2a7aed 100644 --- a/common/network/Session.cpp +++ b/common/network/Session.cpp @@ -18,8 +18,8 @@ namespace network { encryption_(false), online_(true), login_(false), - read_start_time_(time(nullptr)), - write_start_time_(time(nullptr)), + read_start_time_(time(nullptr) - BYTE_AVERAGE_REFRESH_SECONDS), + write_start_time_(time(nullptr) - BYTE_AVERAGE_REFRESH_SECONDS), read_byte_sum_(0), write_byte_sum_(0), serialized_byte_sum_(0), diff --git a/server/Server.cpp b/server/Server.cpp index 2c229ce..f59de94 100644 --- a/server/Server.cpp +++ b/server/Server.cpp @@ -35,7 +35,7 @@ namespace network { } else if (auto session = c.session().lock()) { auto read_average = session->GetReadByteAverage(); if (read_average > config_.receive_limit_2()) { - Logger::Info(_T("Banished session: %d"), session->id()); + Logger::Info(_T("Banished session: %d %dbyte/s"), session->id(), read_average); session->Close(); } else if(read_average > config_.receive_limit_1()) { Logger::Info(_T("Receive limit exceeded: %d: %d byte/s"), session->id(), read_average); diff --git a/server/main.cpp b/server/main.cpp index b670d26..544f682 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -30,14 +30,35 @@ using namespace boost::posix_time; +void client_sync(network::Server& server); +void server(); + int main(int argc, char* argv[]) { - // 設定を読み込み - Config config; - Logger::Info(_T("%s"), unicode::ToTString(MMO_VERSION_TEXT)); +#ifndef NDEBUG try { +#endif + + server(); + +#ifndef NDEBUG + } catch (std::exception& e) { + Logger::Error(e.what()); + Logger::Info("Stop Server"); + } +#endif + + return 0; + +} + +void server() +{ + + // 設定を読み込み + Config config; // 署名 network::Signature sign("server_key"); @@ -342,6 +363,12 @@ int main(int argc, char* argv[]) }); + client_sync(server); + server.Start(callback); +} + +void client_sync(network::Server& server) +{ bool execute_with_client; try { #ifdef _WIN32 @@ -374,14 +401,4 @@ int main(int argc, char* argv[]) #ifdef __linux__ network::ServerSigHandler handler(SIGINT,&server); #endif - server.Start(callback); - - } catch (std::exception& e) { - Logger::Error(e.what()); - - Logger::Info("Stop Server"); - } - - return 0; - } diff --git a/server/version.hpp b/server/version.hpp index 82fab2a..b1fdac4 100644 --- a/server/version.hpp +++ b/server/version.hpp @@ -9,7 +9,7 @@ #define MMO_VERSION_MAJOR 0 #define MMO_VERSION_MINOR 2 -#define MMO_VERSION_REVISION 0 +#define MMO_VERSION_REVISION 1 #define MMO_PROTOCOL_VERSION 2