mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Network: Refactor duplicate code in Socket (#30970)
This commit is contained in:
@@ -279,6 +279,13 @@ private:
|
||||
return IsOpen();
|
||||
}
|
||||
|
||||
void QueuedBufferWriteDone()
|
||||
{
|
||||
_writeQueue.pop();
|
||||
if (_openState == OpenState_Closing && _writeQueue.empty())
|
||||
CloseSocket();
|
||||
}
|
||||
|
||||
#ifdef TC_SOCKET_USE_IOCP
|
||||
|
||||
void WriteHandler(boost::system::error_code const& error, std::size_t transferedBytes)
|
||||
@@ -288,12 +295,10 @@ private:
|
||||
_isWritingAsync = false;
|
||||
_writeQueue.front().ReadCompleted(transferedBytes);
|
||||
if (!_writeQueue.front().GetActiveSize())
|
||||
_writeQueue.pop();
|
||||
QueuedBufferWriteDone();
|
||||
|
||||
if (!_writeQueue.empty())
|
||||
AsyncProcessQueue();
|
||||
else if (_openState == OpenState_Closing)
|
||||
CloseSocket();
|
||||
}
|
||||
else
|
||||
CloseSocket();
|
||||
@@ -324,16 +329,12 @@ private:
|
||||
if (error == boost::asio::error::would_block || error == boost::asio::error::try_again)
|
||||
return AsyncProcessQueue();
|
||||
|
||||
_writeQueue.pop();
|
||||
if (_openState == OpenState_Closing && _writeQueue.empty())
|
||||
CloseSocket();
|
||||
QueuedBufferWriteDone();
|
||||
return false;
|
||||
}
|
||||
else if (bytesSent == 0)
|
||||
{
|
||||
_writeQueue.pop();
|
||||
if (_openState == OpenState_Closing && _writeQueue.empty())
|
||||
CloseSocket();
|
||||
QueuedBufferWriteDone();
|
||||
return false;
|
||||
}
|
||||
else if (bytesSent < bytesToSend) // now n > 0
|
||||
@@ -342,9 +343,7 @@ private:
|
||||
return AsyncProcessQueue();
|
||||
}
|
||||
|
||||
_writeQueue.pop();
|
||||
if (_openState == OpenState_Closing && _writeQueue.empty())
|
||||
CloseSocket();
|
||||
QueuedBufferWriteDone();
|
||||
return !_writeQueue.empty();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user