ChangeLog 8.0 KB

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