Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.

Latest commit

 

History

History
161 lines (95 loc) · 4.69 KB

CHANGELOG.md

File metadata and controls

161 lines (95 loc) · 4.69 KB

Change Log

[0.6.3]

Added

  • Added peer_fn method to UtpSocket.

Fixed

  • Fixed arithmetic operation overflow when calculating the delay between peers.
  • Unconnected sockets and streams no longer send fast resend requests before failing.

[0.6.2]

Fixed

  • Fixed Windows build.

[0.6.1]

Added

  • Packets are resent if no acknowledgment is received before timeout.
  • Sockets time out after too many retransmissions (configurable), returning an error.

Fixed

  • Socket creation no longer fails with arithmetic overflow when generating a random connection identifier.
  • SACK extension generation no longer fails with arithmetic overflow.
  • Resending lost packets no longer floods the connection.
  • Fixed packet extension encoding.
  • Many protocol bug fixes.
  • Fixed warning about Sized in trait on rustc 1.4.0-nightly (10d69db0a 2015-08-23) (RFC 1214 fallout)

[0.6.0]

Added

  • Implemented the Deref trait for easy conversion from UtpStream instances into the underlying UtpSocket.

Changed

  • UtpSocket::connect is now a function instead of a method on a UtpSocket instance (i.e., it doesn't require a socket to be called).

[0.5.1]

Added

  • Added local_addr for both UtpSocket and UtpStream.

[0.5.0]

Added

  • Added local_addr for both UtpSocket and UtpStream.
  • Added the Into trait for easy conversion from UtpSocket instances into UtpStream.

Changed

  • UtpListener::accept now returns both the new socket and the remote peer's address (Result<UtpSocket, SocketAddr>), similarly to TcpListener.
  • UtpListener::incoming now also returns the remote peer's address, similarly to accept but unlike TcpListener::incoming.

[0.4.0]

Added

[0.3.1]

Fixed

  • Removed assertions about off_target, which were killing innocent connections.

[0.3.0]

Fixed

  • Fixed bug when adjusting congestion window caused by miscalculating the delay between peers.
  • Fixed bug where missing packets weren't being re-sent after sending a FIN.
  • Fixed bug where a stream wouldn't bind to an address of the appropriate family when the remote peer had an IPv6 address.
  • Fixed bug where the congestion window would only shrink when packet loss was detected and not on delay changes.

Changed

  • A call to UtpStream::write or UtpSocket::send_to no longer blocks until every packet is acknowledged. To force the old, slower behaviour, call flush after the usual calls (usually you won't need to do this, as the socket/stream is flushed on close/drop).

[0.2.8]

Fixed

  • Fixed bug where extensions could be skipped when parsing a packet.
  • Improved reliability of packet parsing.

[0.2.7]

Fixed

  • Fixed compilation errors in 1.0.0-beta.2

Changed

  • Improved resilience to errors --- receiving an invalid packet no longer leads to a panic
  • Sockets with established connections refuse new connections

[0.2.6]

No functional changes.

Changed

  • Removed stability attributes.
  • Removed an unnecessary partial clone when handling a received packet.

[0.2.5]

Changed

  • Dropping an UtpSocket (or a wrapping struct like UtpStream) properly closes open connections.

[0.2.4]

Improved performance encoding and decoding packets.

[0.2.3]

Fixed

  • Now the crate builds in both the latest nightly and 1.0.0-beta.

[0.2.2]

No functional changes, mostly just changes to conform to changes in the Rust API.

[0.2.1]

Changed

  • Updated the rand dependency because the previous one didn't build on the latest Rust nightly.

Fixed

  • Some UtpStream tests were failing because of improperly sized buffers.

[0.2.0]

This release is now compatible with the 2015-03-28 nightly of the Rust compiler. Some things changed during the migration to the new std::net API and performance is now much lower. It might take me a while to come up with performance improvements and a replacement for the lost set_timeout method in UdpSocket.

Changed

  • Updated example in README.
  • UtpStream and UtpSocket now accept variables implementing the ToSocketAddrs trait, like UdpSocket in the standard library.
  • Reading from a socket now returns Result<(usize, SocketAddr)>.
  • Reading from a stream now returns Result<usize>.
  • Reading from a closed socket/stream now returns Ok((0, remote_peer))/Ok(0) instead of Err(Closed).

Added

  • UtpStream now implements the Read and Write traits.

Removed

  • The Reader and Writer traits were removed, in accordance to the recent IO reform in Rust.
  • Support for connection timeouts were removed, which may impact packet loss handling in some cases.