1
0
mirror of https://github.com/GOSTSec/poolserver synced 2025-01-14 08:47:53 +00:00

Fix crash in client accept

This commit is contained in:
Intel 2014-05-11 12:47:33 -04:00
parent 41e73f3d94
commit 317e3af89b

View File

@ -12,21 +12,26 @@ namespace Stratum
{
bool Client::Start()
{
// Get IP
tcp::endpoint remote_ep = _socket.remote_endpoint();
address remote_ad = remote_ep.address();
_ip = remote_ad.to_v4().to_ulong();
if (_server->IsBanned(_ip)) {
sLog.Warn(LOG_STRATUM, "Blocked banned client from: %s", remote_ad.to_v4().to_string().c_str());
Disconnect();
return false;
}
// Start reading socket
StartRead();
return true;
try {
// Get IP
tcp::endpoint remote_ep = _socket.remote_endpoint();
address remote_ad = remote_ep.address();
_ip = remote_ad.to_v4().to_ulong();
if (_server->IsBanned(_ip)) {
sLog.Warn(LOG_STRATUM, "Blocked banned client from: %s", remote_ad.to_v4().to_string().c_str());
Disconnect();
return false;
}
// Start reading socket
StartRead();
} catch (std::exception& e) {
sLog.Error(LOG_SERVER, "Exception caught while accepting client: %s", e.what());
return false;
}
return true;
}
void Client::SendJob(bool clean)