summaryrefslogtreecommitdiff
path: root/src/network/network_server.cpp
diff options
context:
space:
mode:
authorRubidium <rubidium@openttd.org>2021-04-18 10:49:12 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-04-24 20:42:01 +0200
commit6f161f655942f2ca0091a75cdab8e3260e31bb5f (patch)
tree6bdcff599e22887cde7f9badbb3c03d63dd2edcd /src/network/network_server.cpp
parent38d15fc9b788e2c904705d2ba8de4d5f1ff7988d (diff)
downloadopenttd-6f161f655942f2ca0091a75cdab8e3260e31bb5f.tar.xz
Codechange: encapsulate the logic about how many bytes can be sent from a buffer in to a Packet
Diffstat (limited to 'src/network/network_server.cpp')
-rw-r--r--src/network/network_server.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index fbde713eb..9b77a57af 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -174,12 +174,10 @@ struct PacketWriter : SaveFilter {
byte *bufe = buf + size;
while (buf != bufe) {
- size_t to_write = std::min<size_t>(SEND_MTU - this->current->size, bufe - buf);
- memcpy(this->current->buffer + this->current->size, buf, to_write);
- this->current->size += (PacketSize)to_write;
- buf += to_write;
+ size_t written = this->current->Send_bytes(buf, bufe);
+ buf += written;
- if (this->current->size == SEND_MTU) {
+ if (!this->current->CanWriteToPacket(1)) {
this->AppendQueue();
if (buf != bufe) this->current = new Packet(PACKET_SERVER_MAP_DATA);
}