diff options
author | Rubidium <rubidium@openttd.org> | 2021-04-20 18:50:46 +0200 |
---|---|---|
committer | rubidium42 <rubidium42@users.noreply.github.com> | 2021-04-24 20:42:01 +0200 |
commit | 3abefdf56190ef55d8680acb1aeab9f1b2fc8108 (patch) | |
tree | 779a93162e2a0875ff2c12a8783f30b07c538df1 /src/network/core/tcp.cpp | |
parent | f71fb0f54af443cee37d3c41a0d4f39a24617741 (diff) | |
download | openttd-3abefdf56190ef55d8680acb1aeab9f1b2fc8108.tar.xz |
Codechange: remove public access to the next pointer in Packet
Diffstat (limited to 'src/network/core/tcp.cpp')
-rw-r--r-- | src/network/core/tcp.cpp | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp index c779beb96..a749b6195 100644 --- a/src/network/core/tcp.cpp +++ b/src/network/core/tcp.cpp @@ -42,9 +42,7 @@ NetworkRecvStatus NetworkTCPSocketHandler::CloseConnection(bool error) /* Free all pending and partially received packets */ while (this->packet_queue != nullptr) { - Packet *p = this->packet_queue->next; - delete this->packet_queue; - this->packet_queue = p; + delete Packet::PopFromQueue(&this->packet_queue); } delete this->packet_recv; this->packet_recv = nullptr; @@ -60,21 +58,10 @@ NetworkRecvStatus NetworkTCPSocketHandler::CloseConnection(bool error) */ void NetworkTCPSocketHandler::SendPacket(Packet *packet) { - Packet *p; assert(packet != nullptr); packet->PrepareToSend(); - - /* Locate last packet buffered for the client */ - p = this->packet_queue; - if (p == nullptr) { - /* No packets yet */ - this->packet_queue = packet; - } else { - /* Skip to the last packet */ - while (p->next != nullptr) p = p->next; - p->next = packet; - } + Packet::AddToQueue(&this->packet_queue, packet); } /** @@ -96,8 +83,7 @@ SendPacketsState NetworkTCPSocketHandler::SendPackets(bool closing_down) if (!this->writable) return SPS_NONE_SENT; if (!this->IsConnected()) return SPS_CLOSED; - p = this->packet_queue; - while (p != nullptr) { + while ((p = this->packet_queue) != nullptr) { res = p->TransferOut<int>(send, this->sock, 0); if (res == -1) { int err = GET_LAST_ERROR(); @@ -120,9 +106,7 @@ SendPacketsState NetworkTCPSocketHandler::SendPackets(bool closing_down) /* Is this packet sent? */ if (p->RemainingBytesToTransfer() == 0) { /* Go to the next packet */ - this->packet_queue = p->next; - delete p; - p = this->packet_queue; + delete Packet::PopFromQueue(&this->packet_queue); } else { return SPS_PARTLY_SENT; } |