Update the submodule trantor

This commit is contained in:
antao 2019-01-23 19:05:15 +08:00
parent 8b2bb4796d
commit 4204ad733f
3 changed files with 20 additions and 7 deletions

View File

@ -441,6 +441,7 @@ void HttpAppFrameworkImpl::onWebsockDisconnect(const WebSocketConnectionPtr &wsC
}
void HttpAppFrameworkImpl::onConnection(const TcpConnectionPtr &conn)
{
static std::mutex mtx;
if (conn->connected())
{
if (_connectionNum.fetch_add(1) >= _maxConnectionNum)
@ -451,14 +452,17 @@ void HttpAppFrameworkImpl::onConnection(const TcpConnectionPtr &conn)
else if (_maxConnectionNumPerIP > 0)
{
{
std::lock_guard<std::mutex> lock(mtx);
auto iter = _connectionsNumMap.find(conn->peerAddr().toIp());
if (iter == _connectionsNumMap.end())
{
_connectionsNumMap[conn->peerAddr().toIp()] = 0;
_connectionsNumMap[conn->peerAddr().toIp()] = 1;
}
if (_connectionsNumMap[conn->peerAddr().toIp()]++ >= _maxConnectionNumPerIP)
else if (iter->second++ > _maxConnectionNumPerIP)
{
conn->forceClose();
conn->getLoop()->queueInLoop([conn]() {
conn->forceClose();
});
}
}
}
@ -466,9 +470,18 @@ void HttpAppFrameworkImpl::onConnection(const TcpConnectionPtr &conn)
else
{
_connectionNum--;
if (_maxConnectionNumPerIP > 0 && _connectionsNumMap.find(conn->peerAddr().toIp()) != _connectionsNumMap.end())
if (_maxConnectionNumPerIP > 0)
{
_connectionsNumMap[conn->peerAddr().toIp()]--;
std::lock_guard<std::mutex> lock(mtx);
auto iter = _connectionsNumMap.find(conn->peerAddr().toIp());
if (iter != _connectionsNumMap.end())
{
iter->second--;
if (iter->second <= 0)
{
_connectionsNumMap.erase(iter);
}
}
}
}
}

View File

@ -184,7 +184,7 @@ class HttpAppFrameworkImpl : public HttpAppFramework
size_t _maxConnectionNumPerIP = 0;
std::atomic<uint64_t> _connectionNum;
std::unordered_map<std::string, std::atomic<size_t>> _connectionsNumMap;
std::unordered_map<std::string, size_t> _connectionsNumMap;
bool _runAsDaemon = false;
bool _relaunchOnError = false;

@ -1 +1 @@
Subproject commit 50f5401a0b97fcf94ced323d0913c2cb193f26d7
Subproject commit e4da5dee4293475ea176a6615db0feb8bf98f833