Do not autostart network games. Do not start admin timer for network games.
This commit is contained in:
@@ -32,8 +32,8 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#define MAX_NUMBER_OF_FILES GetMaxNumberOfAvatarFiles()
|
#define MAX_NUMBER_OF_FILES NetHelper::GetMaxNumberOfAvatarFiles()
|
||||||
#define MAX_AVATAR_CACHE_AGE GetMaxAvatarCacheAgeSec()
|
#define MAX_AVATAR_CACHE_AGE NetHelper::GetMaxAvatarCacheAgeSec()
|
||||||
|
|
||||||
#define PNG_HEADER "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a"
|
#define PNG_HEADER "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a"
|
||||||
#define PNG_HEADER_SIZE (sizeof(PNG_HEADER) - 1)
|
#define PNG_HEADER_SIZE (sizeof(PNG_HEADER) - 1)
|
||||||
|
|||||||
@@ -24,14 +24,19 @@
|
|||||||
#include <net/net_helper.h>
|
#include <net/net_helper.h>
|
||||||
|
|
||||||
unsigned
|
unsigned
|
||||||
GetMaxNumberOfAvatarFiles()
|
NetHelper::GetMaxNumberOfAvatarFiles()
|
||||||
{
|
{
|
||||||
return 256;
|
return 256;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned
|
unsigned
|
||||||
GetMaxAvatarCacheAgeSec()
|
NetHelper::GetMaxAvatarCacheAgeSec()
|
||||||
{
|
{
|
||||||
return 604800; // 1 Week
|
return 604800; // 1 Week
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned
|
||||||
|
NetHelper::GetLoginLockSec()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|||||||
@@ -24,14 +24,19 @@
|
|||||||
#include <net/net_helper.h>
|
#include <net/net_helper.h>
|
||||||
|
|
||||||
unsigned
|
unsigned
|
||||||
GetMaxNumberOfAvatarFiles()
|
NetHelper::GetMaxNumberOfAvatarFiles()
|
||||||
{
|
{
|
||||||
return 2048;
|
return 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned
|
unsigned
|
||||||
GetMaxAvatarCacheAgeSec()
|
NetHelper::GetMaxAvatarCacheAgeSec()
|
||||||
{
|
{
|
||||||
return 2592000; // 1 Month
|
return 2592000; // 1 Month
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned
|
||||||
|
NetHelper::GetLoginLockSec()
|
||||||
|
{
|
||||||
|
return 30;
|
||||||
|
}
|
||||||
|
|||||||
@@ -412,6 +412,9 @@ ServerGameStateInit::HandleNewSession(boost::shared_ptr<ServerGame> server, Sess
|
|||||||
|
|
||||||
void
|
void
|
||||||
ServerGameStateInit::RegisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
ServerGameStateInit::RegisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
||||||
|
{
|
||||||
|
// No admin timeout in LAN games.
|
||||||
|
if (server->GetLobbyThread().GetServerMode() != SERVER_MODE_LAN)
|
||||||
{
|
{
|
||||||
server->GetStateTimer1().expires_from_now(
|
server->GetStateTimer1().expires_from_now(
|
||||||
boost::posix_time::seconds(SERVER_GAME_ADMIN_TIMEOUT_SEC - SERVER_GAME_ADMIN_WARNING_REMAINING_SEC));
|
boost::posix_time::seconds(SERVER_GAME_ADMIN_TIMEOUT_SEC - SERVER_GAME_ADMIN_WARNING_REMAINING_SEC));
|
||||||
@@ -419,6 +422,7 @@ ServerGameStateInit::RegisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
|||||||
boost::bind(
|
boost::bind(
|
||||||
&ServerGameStateInit::TimerAdminWarning, this, boost::asio::placeholders::error, server));
|
&ServerGameStateInit::TimerAdminWarning, this, boost::asio::placeholders::error, server));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ServerGameStateInit::UnregisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
ServerGameStateInit::UnregisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
||||||
@@ -428,6 +432,9 @@ ServerGameStateInit::UnregisterAdminTimer(boost::shared_ptr<ServerGame> server)
|
|||||||
|
|
||||||
void
|
void
|
||||||
ServerGameStateInit::RegisterAutoStartTimer(boost::shared_ptr<ServerGame> server)
|
ServerGameStateInit::RegisterAutoStartTimer(boost::shared_ptr<ServerGame> server)
|
||||||
|
{
|
||||||
|
// No autostart in LAN games.
|
||||||
|
if (server->GetLobbyThread().GetServerMode() != SERVER_MODE_LAN)
|
||||||
{
|
{
|
||||||
server->GetStateTimer2().expires_from_now(
|
server->GetStateTimer2().expires_from_now(
|
||||||
boost::posix_time::seconds(SERVER_AUTOSTART_GAME_DELAY_SEC));
|
boost::posix_time::seconds(SERVER_AUTOSTART_GAME_DELAY_SEC));
|
||||||
@@ -435,6 +442,7 @@ ServerGameStateInit::RegisterAutoStartTimer(boost::shared_ptr<ServerGame> server
|
|||||||
boost::bind(
|
boost::bind(
|
||||||
&ServerGameStateInit::TimerAutoStart, this, boost::asio::placeholders::error, server));
|
&ServerGameStateInit::TimerAutoStart, this, boost::asio::placeholders::error, server));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ServerGameStateInit::UnregisterAutoStartTimer(boost::shared_ptr<ServerGame> server)
|
ServerGameStateInit::UnregisterAutoStartTimer(boost::shared_ptr<ServerGame> server)
|
||||||
|
|||||||
@@ -58,14 +58,13 @@
|
|||||||
#define SERVER_UPDATE_LOGIN_LOCK_INTERVAL_MSEC 1000
|
#define SERVER_UPDATE_LOGIN_LOCK_INTERVAL_MSEC 1000
|
||||||
#define SERVER_PROCESS_SEND_INTERVAL_MSEC 10
|
#define SERVER_PROCESS_SEND_INTERVAL_MSEC 10
|
||||||
|
|
||||||
#define SERVER_INIT_LOGIN_CLIENT_LOCK_SEC 30 // Forbid a client to send an additional avatar.
|
#define SERVER_INIT_LOGIN_CLIENT_LOCK_SEC NetHelper::GetLoginLockSec()
|
||||||
|
|
||||||
#define SERVER_INIT_SESSION_TIMEOUT_SEC 60
|
#define SERVER_INIT_SESSION_TIMEOUT_SEC 60
|
||||||
#define SERVER_TIMEOUT_WARNING_REMAINING_SEC 60
|
#define SERVER_TIMEOUT_WARNING_REMAINING_SEC 60
|
||||||
#define SERVER_SESSION_ACTIVITY_TIMEOUT_SEC 1800 // 30 min, MUST be > SERVER_TIMEOUT_WARNING_REMAINING_SEC
|
#define SERVER_SESSION_ACTIVITY_TIMEOUT_SEC 1800 // 30 min, MUST be > SERVER_TIMEOUT_WARNING_REMAINING_SEC
|
||||||
#define SERVER_SESSION_FORCED_TIMEOUT_SEC 86400 // 1 day, should be quite large.
|
#define SERVER_SESSION_FORCED_TIMEOUT_SEC 86400 // 1 day, should be quite large.
|
||||||
|
|
||||||
|
|
||||||
#define SERVER_STATISTICS_FILE_NAME "server_statistics.log"
|
#define SERVER_STATISTICS_FILE_NAME "server_statistics.log"
|
||||||
#define SERVER_STATISTICS_STR_TOTAL_PLAYERS "TotalNumPlayersLoggedIn"
|
#define SERVER_STATISTICS_STR_TOTAL_PLAYERS "TotalNumPlayersLoggedIn"
|
||||||
#define SERVER_STATISTICS_STR_TOTAL_GAMES "TotalNumGamesCreated"
|
#define SERVER_STATISTICS_STR_TOTAL_GAMES "TotalNumGamesCreated"
|
||||||
@@ -637,6 +636,12 @@ ServerLobbyThread::GetStartTime() const
|
|||||||
return m_startTime;
|
return m_startTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ServerMode
|
||||||
|
ServerLobbyThread::GetServerMode() const
|
||||||
|
{
|
||||||
|
return m_mode;
|
||||||
|
}
|
||||||
|
|
||||||
SenderHelper &
|
SenderHelper &
|
||||||
ServerLobbyThread::GetSender()
|
ServerLobbyThread::GetSender()
|
||||||
{
|
{
|
||||||
@@ -989,9 +994,6 @@ ServerLobbyThread::HandleNetPacketInit(SessionWrapper session, const InitMessage
|
|||||||
// Before any other processing, perform some denial of service and
|
// Before any other processing, perform some denial of service and
|
||||||
// brute force attack prevention by checking whether the user recently sent an
|
// brute force attack prevention by checking whether the user recently sent an
|
||||||
// Init packet.
|
// Init packet.
|
||||||
// This check is not performed on LAN servers.
|
|
||||||
if (m_mode != SERVER_MODE_LAN)
|
|
||||||
{
|
|
||||||
bool recentlySentInit = false;
|
bool recentlySentInit = false;
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(m_timerClientAddressMapMutex);
|
boost::mutex::scoped_lock lock(m_timerClientAddressMapMutex);
|
||||||
@@ -1005,7 +1007,6 @@ ServerLobbyThread::HandleNetPacketInit(SessionWrapper session, const InitMessage
|
|||||||
SessionError(session, ERR_NET_INIT_BLOCKED);
|
SessionError(session, ERR_NET_INIT_BLOCKED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check the protocol version.
|
// Check the protocol version.
|
||||||
if (initMessage.requestedVersion.major != NET_VERSION_MAJOR
|
if (initMessage.requestedVersion.major != NET_VERSION_MAJOR
|
||||||
|
|||||||
@@ -23,8 +23,13 @@
|
|||||||
#define SERVER_COMPUTER_PLAYER_NAME "Computer"
|
#define SERVER_COMPUTER_PLAYER_NAME "Computer"
|
||||||
#define SERVER_GUEST_PLAYER_NAME "Guest"
|
#define SERVER_GUEST_PLAYER_NAME "Guest"
|
||||||
|
|
||||||
unsigned GetMaxNumberOfAvatarFiles();
|
class NetHelper
|
||||||
unsigned GetMaxAvatarCacheAgeSec();
|
{
|
||||||
|
public:
|
||||||
|
static unsigned GetMaxNumberOfAvatarFiles();
|
||||||
|
static unsigned GetMaxAvatarCacheAgeSec();
|
||||||
|
static unsigned GetLoginLockSec();
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ public:
|
|||||||
|
|
||||||
ServerStats GetStats() const;
|
ServerStats GetStats() const;
|
||||||
boost::posix_time::ptime GetStartTime() const;
|
boost::posix_time::ptime GetStartTime() const;
|
||||||
|
ServerMode GetServerMode() const;
|
||||||
|
|
||||||
SenderHelper &GetSender();
|
SenderHelper &GetSender();
|
||||||
boost::asio::io_service &GetIOService();
|
boost::asio::io_service &GetIOService();
|
||||||
|
|||||||
Reference in New Issue
Block a user