summaryrefslogtreecommitdiff
path: root/src/network/network_udp.cpp
diff options
context:
space:
mode:
authorRubidium <rubidium@openttd.org>2021-04-18 09:26:06 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-04-24 20:42:01 +0200
commita2051bad503618f37e941aca3e4a5d53af1b0fbe (patch)
tree3857e4b4df3298d8831bc104db72a418ca7bfed6 /src/network/network_udp.cpp
parentc545cc9d7039a89e23de160b1c93adc959eabda5 (diff)
downloadopenttd-a2051bad503618f37e941aca3e4a5d53af1b0fbe.tar.xz
Codechange: move logic whether there is enough space in a packet to write data into the Packet
Diffstat (limited to 'src/network/network_udp.cpp')
-rw-r--r--src/network/network_udp.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp
index 46a21fc87..aa34515bd 100644
--- a/src/network/network_udp.cpp
+++ b/src/network/network_udp.cpp
@@ -220,23 +220,23 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_DETAIL_INFO(Packet *p, Networ
static const uint MIN_CI_SIZE = 54;
uint max_cname_length = NETWORK_COMPANY_NAME_LENGTH;
- if (Company::GetNumItems() * (MIN_CI_SIZE + NETWORK_COMPANY_NAME_LENGTH) >= (uint)SEND_MTU - packet.size) {
+ if (!packet.CanWriteToPacket(Company::GetNumItems() * (MIN_CI_SIZE + NETWORK_COMPANY_NAME_LENGTH))) {
/* Assume we can at least put the company information in the packets. */
- assert(Company::GetNumItems() * MIN_CI_SIZE < (uint)SEND_MTU - packet.size);
+ assert(packet.CanWriteToPacket(Company::GetNumItems() * MIN_CI_SIZE));
/* At this moment the company names might not fit in the
* packet. Check whether that is really the case. */
for (;;) {
- int free = SEND_MTU - packet.size;
+ size_t required = 0;
for (const Company *company : Company::Iterate()) {
char company_name[NETWORK_COMPANY_NAME_LENGTH];
SetDParam(0, company->index);
GetString(company_name, STR_COMPANY_NAME, company_name + max_cname_length - 1);
- free -= MIN_CI_SIZE;
- free -= (int)strlen(company_name);
+ required += MIN_CI_SIZE;
+ required += strlen(company_name);
}
- if (free >= 0) break;
+ if (packet.CanWriteToPacket(required)) break;
/* Try again, with slightly shorter strings. */
assert(max_cname_length > 0);