Skip to content

Commit 110588d

Browse files
sauerbratenlsalzmanNieb
committed
svn r6860
Co-authored-by: eihrul <lsalzman@gmail.com> Co-authored-by: Nieb <Nieb@users.noreply.github.com>
1 parent 40a8444 commit 110588d

File tree

16 files changed

+287
-262
lines changed

16 files changed

+287
-262
lines changed

Makefile

+1-3
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ apply-patches:
8181
$(PATCH) < patches/setfont.patch
8282
$(PATCH) < patches/serverbotbalanceearly.patch
8383
$(PATCH) < patches/bans.patch
84-
$(PATCH) < patches/enet_mtu_1300.patch
8584
$(PATCH) < patches/fullscreenmonitor.patch
86-
$(PATCH) < patches/enet_partial_flood.patch
8785
$(PATCH) < patches/enet_fragment_flood.patch
8886
cd src && make depend
8987

@@ -124,7 +122,7 @@ update-src: clean-sauer
124122
from-patches: | update-src apply-patches embed-cfgs build
125123

126124
changes-to-patch:
127-
git diff --no-prefix --ignore-all-space --staged data/p1xbraten src/{$(P1XBRATEN_SOURCE_FILES)} > patches/new_changes.patch
125+
git diff --no-prefix --ignore-all-space --staged data/p1xbraten src/{$(P1XBRATEN_SOURCE_FILES)} src/Makefile > patches/new_changes.patch
128126

129127
ensure-sauer-dir:
130128
ifndef SAUER_DIR

patches/enet_mtu_1300.patch

-16
This file was deleted.

patches/enet_partial_flood.patch

-59
This file was deleted.

src/enet/ChangeLog

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1+
ENet 1.3.18 (April 14, 2024):
2+
3+
* Packet sending performance improvements
4+
* MTU negotiation fixes
5+
* Checksum alignment fix
6+
* No more dynamic initialization of checksum table
7+
* ENET_SOCKOPT_TTL
8+
* Other miscellaneous small improvements
9+
110
ENet 1.3.17 (November 15, 2020):
211

3-
* fixes for sender getting too far ahead or receiver that can cause instability with reliable packets
12+
* fixes for sender getting too far ahead of receiver that can cause instability with reliable packets
413

514
ENet 1.3.16 (September 8, 2020):
615

@@ -19,7 +28,7 @@ ENet 1.3.14 (January 27, 2019):
1928

2029
* bug fix for enet_peer_disconnect_later()
2130
* use getaddrinfo and getnameinfo where available
22-
* miscellenous cleanups
31+
* miscellaneous cleanups
2332

2433
ENet 1.3.13 (April 30, 2015):
2534

src/enet/LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2002-2020 Lee Salzman
1+
Copyright (c) 2002-2024 Lee Salzman
22

33
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
44

src/enet/README

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Please visit the ENet homepage at http://enet.bespin.org for installation
1+
Please visit the ENet homepage at http://sauerbraten.org/enet/ for installation
22
and usage instructions.
33

44
If you obtained this package from github, the quick description on how to build

src/enet/host.c

+14-2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ enet_host_create (const ENetAddress * address, size_t peerCount, size_t channelL
9696
host -> totalSentPackets = 0;
9797
host -> totalReceivedData = 0;
9898
host -> totalReceivedPackets = 0;
99+
host -> totalQueued = 0;
99100

100101
host -> connectedPeers = 0;
101102
host -> bandwidthLimitedPeers = 0;
@@ -123,8 +124,8 @@ enet_host_create (const ENetAddress * address, size_t peerCount, size_t channelL
123124

124125
enet_list_clear (& currentPeer -> acknowledgements);
125126
enet_list_clear (& currentPeer -> sentReliableCommands);
126-
enet_list_clear (& currentPeer -> sentUnreliableCommands);
127127
enet_list_clear (& currentPeer -> outgoingCommands);
128+
enet_list_clear (& currentPeer -> outgoingSendReliableCommands);
128129
enet_list_clear (& currentPeer -> dispatchedCommands);
129130

130131
enet_peer_reset (currentPeer);
@@ -160,6 +161,16 @@ enet_host_destroy (ENetHost * host)
160161
enet_free (host);
161162
}
162163

164+
enet_uint32
165+
enet_host_random (ENetHost * host)
166+
{
167+
/* Mulberry32 by Tommy Ettinger */
168+
enet_uint32 n = (host -> randomSeed += 0x6D2B79F5U);
169+
n = (n ^ (n >> 15)) * (n | 1U);
170+
n ^= n + (n ^ (n >> 7)) * (n | 61U);
171+
return n ^ (n >> 14);
172+
}
173+
163174
/** Initiates a connection to a foreign host.
164175
@param host host seeking the connection
165176
@param address destination for the connection
@@ -199,7 +210,8 @@ enet_host_connect (ENetHost * host, const ENetAddress * address, size_t channelC
199210
currentPeer -> channelCount = channelCount;
200211
currentPeer -> state = ENET_PEER_STATE_CONNECTING;
201212
currentPeer -> address = * address;
202-
currentPeer -> connectID = ++ host -> randomSeed;
213+
currentPeer -> connectID = enet_host_random (host);
214+
currentPeer -> mtu = host -> mtu;
203215

204216
if (host -> outgoingBandwidth == 0)
205217
currentPeer -> windowSize = ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE;

src/enet/include/enet/enet.h

+11-7
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ extern "C"
2525

2626
#define ENET_VERSION_MAJOR 1
2727
#define ENET_VERSION_MINOR 3
28-
#define ENET_VERSION_PATCH 17
28+
#define ENET_VERSION_PATCH 18
2929
#define ENET_VERSION_CREATE(major, minor, patch) (((major)<<16) | ((minor)<<8) | (patch))
3030
#define ENET_VERSION_GET_MAJOR(version) (((version)>>16)&0xFF)
3131
#define ENET_VERSION_GET_MINOR(version) (((version)>>8)&0xFF)
@@ -62,7 +62,8 @@ typedef enum _ENetSocketOption
6262
ENET_SOCKOPT_RCVTIMEO = 6,
6363
ENET_SOCKOPT_SNDTIMEO = 7,
6464
ENET_SOCKOPT_ERROR = 8,
65-
ENET_SOCKOPT_NODELAY = 9
65+
ENET_SOCKOPT_NODELAY = 9,
66+
ENET_SOCKOPT_TTL = 10
6667
} ENetSocketOption;
6768

6869
typedef enum _ENetSocketShutdown
@@ -169,7 +170,7 @@ typedef struct _ENetOutgoingCommand
169170
enet_uint16 unreliableSequenceNumber;
170171
enet_uint32 sentTime;
171172
enet_uint32 roundTripTimeout;
172-
enet_uint32 roundTripTimeoutLimit;
173+
enet_uint32 queueTime;
173174
enet_uint32 fragmentOffset;
174175
enet_uint16 fragmentLength;
175176
enet_uint16 sendAttempts;
@@ -212,7 +213,7 @@ enum
212213
ENET_HOST_RECEIVE_BUFFER_SIZE = 256 * 1024,
213214
ENET_HOST_SEND_BUFFER_SIZE = 256 * 1024,
214215
ENET_HOST_BANDWIDTH_THROTTLE_INTERVAL = 1000,
215-
ENET_HOST_DEFAULT_MTU = 1300,
216+
ENET_HOST_DEFAULT_MTU = 1392,
216217
ENET_HOST_DEFAULT_MAXIMUM_PACKET_SIZE = 32 * 1024 * 1024,
217218
ENET_HOST_DEFAULT_MAXIMUM_WAITING_DATA = 32 * 1024 * 1024,
218219

@@ -252,7 +253,8 @@ typedef struct _ENetChannel
252253

253254
typedef enum _ENetPeerFlag
254255
{
255-
ENET_PEER_FLAG_NEEDS_DISPATCH = (1 << 0)
256+
ENET_PEER_FLAG_NEEDS_DISPATCH = (1 << 0),
257+
ENET_PEER_FLAG_CONTINUE_SENDING = (1 << 1)
256258
} ENetPeerFlag;
257259

258260
/**
@@ -312,7 +314,7 @@ typedef struct _ENetPeer
312314
enet_uint16 outgoingReliableSequenceNumber;
313315
ENetList acknowledgements;
314316
ENetList sentReliableCommands;
315-
ENetList sentUnreliableCommands;
317+
ENetList outgoingSendReliableCommands;
316318
ENetList outgoingCommands;
317319
ENetList dispatchedCommands;
318320
enet_uint16 flags;
@@ -375,7 +377,7 @@ typedef struct _ENetHost
375377
size_t channelLimit; /**< maximum number of channels allowed for connected peers */
376378
enet_uint32 serviceTime;
377379
ENetList dispatchQueue;
378-
int continueSending;
380+
enet_uint32 totalQueued;
379381
size_t packetSize;
380382
enet_uint16 headerFlags;
381383
ENetProtocol commands [ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS];
@@ -575,6 +577,7 @@ ENET_API void enet_host_channel_limit (ENetHost *, size_t);
575577
ENET_API void enet_host_bandwidth_limit (ENetHost *, enet_uint32, enet_uint32);
576578
extern void enet_host_bandwidth_throttle (ENetHost *);
577579
extern enet_uint32 enet_host_random_seed (void);
580+
extern enet_uint32 enet_host_random (ENetHost *);
578581

579582
ENET_API int enet_peer_send (ENetPeer *, enet_uint8, ENetPacket *);
580583
ENET_API ENetPacket * enet_peer_receive (ENetPeer *, enet_uint8 * channelID);
@@ -588,6 +591,7 @@ ENET_API void enet_peer_disconnect_later (ENetPeer *, enet_uint32
588591
ENET_API void enet_peer_throttle_configure (ENetPeer *, enet_uint32, enet_uint32, enet_uint32);
589592
extern int enet_peer_throttle (ENetPeer *, enet_uint32);
590593
extern void enet_peer_reset_queues (ENetPeer *);
594+
extern int enet_peer_has_outgoing_commands (ENetPeer *);
591595
extern void enet_peer_setup_outgoing_command (ENetPeer *, ENetOutgoingCommand *);
592596
extern ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32, enet_uint16);
593597
extern ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, const void *, size_t, enet_uint32, enet_uint32);

src/enet/include/enet/win32.h

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#pragma warning (disable: 4244) // 64bit to 32bit int
1212
#pragma warning (disable: 4018) // signed/unsigned mismatch
1313
#pragma warning (disable: 4146) // unary minus operator applied to unsigned type
14+
#define _CRT_SECURE_NO_DEPRECATE
15+
#define _CRT_SECURE_NO_WARNINGS
1416
#endif
1517
#endif
1618

src/enet/packet.c

+35-42
Original file line numberDiff line numberDiff line change
@@ -98,53 +98,46 @@ enet_packet_resize (ENetPacket * packet, size_t dataLength)
9898
return 0;
9999
}
100100

101-
static int initializedCRC32 = 0;
102-
static enet_uint32 crcTable [256];
103-
104-
static enet_uint32
105-
reflect_crc (int val, int bits)
101+
static const enet_uint32 crcTable [256] =
106102
{
107-
int result = 0, bit;
108-
109-
for (bit = 0; bit < bits; bit ++)
110-
{
111-
if(val & 1) result |= 1 << (bits - 1 - bit);
112-
val >>= 1;
113-
}
114-
115-
return result;
116-
}
117-
118-
static void
119-
initialize_crc32 (void)
120-
{
121-
int byte;
122-
123-
for (byte = 0; byte < 256; ++ byte)
124-
{
125-
enet_uint32 crc = reflect_crc (byte, 8) << 24;
126-
int offset;
103+
0, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
104+
0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
105+
0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
106+
0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
107+
0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
108+
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
109+
0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
110+
0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
111+
0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
112+
0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
113+
0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
114+
0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
115+
0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
116+
0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
117+
0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
118+
0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
119+
0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
120+
0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
121+
0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
122+
0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
123+
0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
124+
0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
125+
0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
126+
0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
127+
0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x5005713,
128+
0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0xBDBDF21,
129+
0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
130+
0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
131+
0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
132+
0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
133+
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
134+
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
135+
};
127136

128-
for(offset = 0; offset < 8; ++ offset)
129-
{
130-
if (crc & 0x80000000)
131-
crc = (crc << 1) ^ 0x04c11db7;
132-
else
133-
crc <<= 1;
134-
}
135-
136-
crcTable [byte] = reflect_crc (crc, 32);
137-
}
138-
139-
initializedCRC32 = 1;
140-
}
141-
142137
enet_uint32
143138
enet_crc32 (const ENetBuffer * buffers, size_t bufferCount)
144139
{
145140
enet_uint32 crc = 0xFFFFFFFF;
146-
147-
if (! initializedCRC32) initialize_crc32 ();
148141

149142
while (bufferCount -- > 0)
150143
{
@@ -153,7 +146,7 @@ enet_crc32 (const ENetBuffer * buffers, size_t bufferCount)
153146

154147
while (data < dataEnd)
155148
{
156-
crc = (crc >> 8) ^ crcTable [(crc & 0xFF) ^ *data++];
149+
crc = (crc >> 8) ^ crcTable [(crc & 0xFF) ^ *data++];
157150
}
158151

159152
++ buffers;

0 commit comments

Comments
 (0)