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