1ENet 1.3.17 (November 15, 2020):
2
3* fixes for sender getting too far ahead or receiver that can cause instability with reliable packets
4
5ENet 1.3.16 (September 8, 2020):
6
7* fix bug in unreliable fragment queuing
8* use single output queue for reliable and unreliable packets for saner ordering
9* revert experimental throttle changes that were less stable than prior algorithm
10
11ENet 1.3.15 (April 20, 2020):
12
13* quicker RTT initialization
14* use fractional precision for RTT calculations
15* fixes for packet throttle with low RTT variance
16* miscellaneous socket bug fixes
17
18ENet 1.3.14 (January 27, 2019):
19
20* bug fix for enet_peer_disconnect_later()
21* use getaddrinfo and getnameinfo where available
22* miscellenous cleanups
23
24ENet 1.3.13 (April 30, 2015):
25
26* miscellaneous bug fixes
27* added premake and cmake support
28* miscellaneous documentation cleanups
29
30ENet 1.3.12 (April 24, 2014):
31
32* added maximumPacketSize and maximumWaitingData fields to ENetHost to limit the amount of
33data waiting to be delivered on a peer (beware that the default maximumPacketSize is
3432MB and should be set higher if desired as should maximumWaitingData)
35
36ENet 1.3.11 (December 26, 2013):
37
38* allow an ENetHost to connect to itself
39* fixed possible bug with disconnect notifications during connect attempts
40* fixed some preprocessor definition bugs
41
42ENet 1.3.10 (October 23, 2013);
43
44* doubled maximum reliable window size
45* fixed RCVTIMEO/SNDTIMEO socket options and also added NODELAY
46
47ENet 1.3.9 (August 19, 2013):
48
49* added duplicatePeers option to ENetHost which can limit the number of peers from duplicate IPs
50* added enet_socket_get_option() and ENET_SOCKOPT_ERROR
51* added enet_host_random_seed() platform stub
52
53ENet 1.3.8 (June 2, 2013):
54
55* added enet_linked_version() for checking the linked version
56* added enet_socket_get_address() for querying the local address of a socket
57* silenced some debugging prints unless ENET_DEBUG is defined during compilation
58* handle EINTR in enet_socket_wait() so that enet_host_service() doesn't propagate errors from signals
59* optimized enet_host_bandwidth_throttle() to be less expensive for large numbers of peers
60
61ENet 1.3.7 (March 6, 2013):
62
63* added ENET_PACKET_FLAG_SENT to indicate that a packet is being freed because it has been sent
64* added userData field to ENetPacket
65* changed how random seed is generated on Windows to avoid import warnings
66* fixed case where disconnects could be generated with no preceding connect event
67
68ENet 1.3.6 (December 11, 2012):
69
70* added support for intercept callback in ENetHost that can be used to process raw packets before ENet
71* added enet_socket_shutdown() for issuing shutdown on a socket
72* fixed enet_socket_connect() to not error on non-blocking connects
73* fixed bug in MTU negotiation during connections
74
75ENet 1.3.5 (July 31, 2012):
76
77* fixed bug in unreliable packet fragment queuing
78
79ENet 1.3.4 (May 29, 2012):
80
81* added enet_peer_ping_interval() for configuring per-peer ping intervals
82* added enet_peer_timeout() for configuring per-peer timeouts
83* added protocol packet size limits
84
85ENet 1.3.3 (June 28, 2011):
86
87* fixed bug with simultaneous disconnects not dispatching events
88
89ENet 1.3.2 (May 31, 2011):
90
91* added support for unreliable packet fragmenting via the packet flag
92ENET_PACKET_FLAG_UNRELIABLE_FRAGMENT
93* fixed regression in unreliable packet queuing
94* added check against received port to limit some forms of IP-spoofing
95
96ENet 1.3.1 (February 10, 2011):
97
98* fixed bug in tracking of reliable data in transit
99* reliable data window size now scales with the throttle
100* fixed bug in fragment length calculation when checksums are used
101
102ENet 1.3.0 (June 5, 2010):
103
104* enet_host_create() now requires the channel limit to be specified as
105a parameter
106* enet_host_connect() now accepts a data parameter which is supplied
107to the receiving receiving host in the event data field for a connect event
108* added an adaptive order-2 PPM range coder as a built-in compressor option
109which can be set with enet_host_compress_with_range_coder()
110* added support for packet compression configurable with a callback
111* improved session number handling to not rely on the packet checksum
112field, saving 4 bytes per packet unless the checksum option is used
113* removed the dependence on the rand callback for session number handling
114
115Caveats: This version is not protocol compatible with the 1.2 series or
116earlier. The enet_host_connect and enet_host_create API functions require
117supplying additional parameters.
118
119ENet 1.2.5 (June 28, 2011):
120
121* fixed bug with simultaneous disconnects not dispatching events
122
123ENet 1.2.4 (May 31, 2011):
124
125* fixed regression in unreliable packet queuing
126* added check against received port to limit some forms of IP-spoofing
127
128ENet 1.2.3 (February 10, 2011):
129
130* fixed bug in tracking reliable data in transit
131
132ENet 1.2.2 (June 5, 2010):
133
134* checksum functionality is now enabled by setting a checksum callback
135inside ENetHost instead of being a configure script option
136* added totalSentData, totalSentPackets, totalReceivedData, and
137totalReceivedPackets counters inside ENetHost for getting usage
138statistics
139* added enet_host_channel_limit() for limiting the maximum number of
140channels allowed by connected peers
141* now uses dispatch queues for event dispatch rather than potentially
142unscalable array walking
143* added no_memory callback that is called when a malloc attempt fails,
144such that if no_memory returns rather than aborts (the default behavior),
145then the error is propagated to the return value of the API calls
146* now uses packed attribute for protocol structures on platforms with
147strange alignment rules
148* improved autoconf build system contributed by Nathan Brink allowing
149for easier building as a shared library
150
151Caveats: If you were using the compile-time option that enabled checksums,
152make sure to set the checksum callback inside ENetHost to enet_crc32 to
153regain the old behavior. The ENetCallbacks structure has added new fields,
154so make sure to clear the structure to zero before use if
155using enet_initialize_with_callbacks().
156
157ENet 1.2.1 (November 12, 2009):
158
159* fixed bug that could cause disconnect events to be dropped
160* added thin wrapper around select() for portable usage
161* added ENET_SOCKOPT_REUSEADDR socket option
162* factored enet_socket_bind()/enet_socket_listen() out of enet_socket_create()
163* added contributed Code::Blocks build file
164
165ENet 1.2 (February 12, 2008):
166
167* fixed bug in VERIFY_CONNECT acknowledgement that could cause connect
168attempts to occasionally timeout
169* fixed acknowledgements to check both the outgoing and sent queues
170when removing acknowledged packets
171* fixed accidental bit rot in the MSVC project file
172* revised sequence number overflow handling to address some possible
173disconnect bugs
174* added enet_host_check_events() for getting only local queued events
175* factored out socket option setting into enet_socket_set_option() so
176that socket options are now set separately from enet_socket_create()
177
178Caveats: While this release is superficially protocol compatible with 1.1,
179differences in the sequence number overflow handling can potentially cause
180random disconnects.
181
182ENet 1.1 (June 6, 2007):
183
184* optional CRC32 just in case someone needs a stronger checksum than UDP
185provides (--enable-crc32 configure option)
186* the size of packet headers are half the size they used to be (so less
187overhead when sending small packets)
188* enet_peer_disconnect_later() that waits till all queued outgoing
189packets get sent before issuing an actual disconnect
190* freeCallback field in individual packets for notification of when a
191packet is about to be freed
192* ENET_PACKET_FLAG_NO_ALLOCATE for supplying pre-allocated data to a
193packet (can be used in concert with freeCallback to support some custom
194allocation schemes that the normal memory allocation callbacks would
195normally not allow)
196* enet_address_get_host_ip() for printing address numbers
197* promoted the enet_socket_*() functions to be part of the API now
198* a few stability/crash fixes
199
200
201