Skip to content

Releases: maidsafe/qp2p

v0.17.1

31 Aug 16:55
Compare
Choose a tag to compare

0.17.1 (2021-08-31)

Bug Fixes

  • Correctly mark UpnpError source (728d6b4)

v0.17.0

31 Aug 11:58
Compare
Choose a tag to compare

0.17.0 (2021-08-31)

⚠ BREAKING CHANGES

  • The signature of Endpoint::new_client has changed to
    return a tuple of (Endpoint, IncomingMessages, DisconnectionEvents)
    rather than just the Endpoint.

Features

  • Client support for incoming messages and disconnections (cb945a9)

v0.16.0

27 Aug 11:51
Compare
Choose a tag to compare

0.16.0 (2021-08-27)

⚠ BREAKING CHANGES

  • The Endpoint::bootstrap_nodes method has been removed since it is no longer set.

  • The Error type has been removed.

  • Endpoint::try_send_message now returns Result<(), Option<SendError>> rather than Result<(), Error>. The Error::MissingConnection variant has been removed.

  • Endpoint::is_reachable now returns Result<(), RpcError>, rather than Result<(), Error>.

  • The Result alias has been removed. It can be replaced by std::result::Result<T, qp2p::Error>.

  • The QuicP2p type has been removed. Use Endpoint::new or Endpoint::new_client instead. The BootstrapFailure, EmptyBootstrapNodesList, Io, Endpoint, NoEchoServerEndpointDefined, EchoServiceFailure, CannotAssignPort, IncorrectPublicAddress, and UnresolvedPublicIp Error variants have been removed.

  • The IgdAddPort, IgdRenewPort, IgdSearch, and IgdNotSupported variants have been removed from Error. These variants would never have been returned, but may be referenced in matches against Error values.

  • The RecvNextError and UnexpectedMessageType types have been removed. RecvError is used where RecvNextError was used previously.

  • The SendError::TooLong variant has been removed. The same condition (attempting to send a message longer than u32::MAX bytes) will now return SendError::Serialization.

  • RecvStream::next now returns RecvNextError as the error type. The following Error variants have been removed:

    • Error::Serialisation (this is now fully covered by SendError and RecvError).
    • Error::InvalidMsgFlag (this case is now covered by RecvError::Serialization).
    • Error::StreamRead (this is now covered by RecvError).
    • Error::EmptyResponse (this case is now covered by RecvError::Serialization).
    • Error::UnexpectedMessageType (this case is now covered by `ReadNextError::UnexpectedMessageType).

    Finally, a Recv variant has been added to Error.

  • The following APIs had their error type changed from Error to SendError:

    • SendStream::send_user_msg
    • SendStream::send
    • SendStream::finish
    • Endpoint::send_message

    Additionally, the StreamWrite and MaxLengthExceeded variants have been removed from Error, and a Send variant has been added.

  • SendStream::send is no longer public. Error::UnexpectedMessageType now contains a simple error struct.

  • Endpoint::connect_to and Endpoint::open_bidirectional_stream now use ConnectionError, rather than Error, for error results.

  • Endpoint::disconnect_from now returns ().

  • The Error::UnknownStream variant has been removed.

  • SendStream::set_priority is now infallible and returns ().

  • SendStream::priority has been removed.

  • The Error::Connect and Error::ConnectionClosed variants have been removed. Several additional variants have been added to ConnectionError.

  • Endpoint::connect_to_any now returns Option<SocketAddr> instead of Result<SocketAddr>.

  • The ConnId::generate method now returns Self, and doesn't allow for errors. The Error::ConnectionIdGeneration variant has been removed.

  • Endpoint::socket_addr has been renamed to public_addr.

  • The Error::UnexpectedError variant has been removed.

  • The Error::DisconnectionNotification and Error::Configuration variants have been removed.

  • There are several breaking changes:

    • QuicP2p::from_config now returns Result<Self, ConfigError>.
    • The Error::CertificateParse variant has been removed.
    • The Error::CertificatePkParse variant has been removed.
    • The Error::CertificateGen variant has been removed.
    • The Error::Tls variant has been removed.
  • The Error::Base64Decode variant has been removed.

  • The duration fields in config have all changed:

    • idle_timeout_msec is renamed idle_timeout and is now an Option<Duration>.
    • keep_alive_interval_msec is renamed keep_alive_interval and is now an Option<Duration>.
    • upnp_lease_duration is now an Option<Duration>.
    • retry_duration_msec is renamed min_retry_duration and is now an Option<Duration>.
  • QuicP2p::from_config now takes a Config argument, rather than Option<Config>. Config::default() (or Option::unwrap_or_default) should be used instead.

  • Config::hard_coded_contacts and Config::bootstrap_cache_dir have been removed. Additionally, QuicP2p::with_config no longer takes bootstrap_nodes – these should instead be passed to QuicP2p::bootstrap. Finally, the Error::InvalidPath and Error::UserHomeDir variants have been removed.

  • Config::local_ip and Config::local_port have been removed. QuicP2p::bootstrap and QuicP2p::new_endpoint now require a local address to bind to. The Error::UnspecifiedLocalIp variant has been removed.

  • This is a breaking behavioural change. It is now up to the caller if they want to retry with a different port.

  • Config::max_msg_size_allowed has been removed.

Features

  • Add Endpoint::connect_to_any (59d0b5e)
  • Add Endpoint::new_client constructor (176d025)
  • Add RecvNextError for receive-specific errors (7e6e4a9)
  • Add SendError for send-specific errors (73c6501)
  • Add public Endpoint::new constructor (c448df2)

Bug Fixes

  • Add missing re-export for TransportErrorCode (8cf4f88)

  • Don't use connection pool in Endpoint::is_reachable (8a7260b)

  • Fix WireMsg visibility (33e9b3b)

  • Make connection deduplicator handle cancellations (a0404ac)

  • Delete SerializableCertificate (4bbcd29)

  • Make Config in QuicP2p::from_config non-optional (19b3795)

  • Make ConnId::generate infallible (ea089ac)

  • Make Endpoint::disconnect_from infallible (9eb947f)

  • Merge 'connect' and 'close' errors with ConnectionError (9aae2e3)

  • Move local address from config to QuicP2p::bootstrap (de9763d)

  • Refactor WireMsg::read_from_stream to avoid logic error (047d071)

  • Remove BootstrapCache and hard-coded contacts (df3fef8)

  • Remove Endpoint::bootstrap_nodes (c399bca)

  • Remove Error::UnknownStream variant (2386486)

  • Remove Error (5608f27)

  • Remove QuicP2p (44d964c)

  • Remove Result alias (e528134)

  • Remove random port fallback (9b1612a)

  • Remove unused Config::max_msg_size_allowed (44d750f)

  • Remove unused Error variants (3b8174a)

  • Rename Endpoint::socket_addr to public_addr (91d8457)

  • Return Option from Endpoint::connect_to_any (5d374fa)

  • Return RpcError from Endpoint::is_reachable (674ad2d)

  • Return SendError in Endpoint::try_send_message (c43855b)

  • Separate ConfigError from Error (e837aca)

  • Treat unexpected messages as serialization errors (e0695c3)

  • Use ConnectionError when possible (db74509)

  • Use Duration in config and centralise defaults (86f886b)

  • Use SerializationError for too long messages (5bf79c1)

  • Use a separate type for IGD errors ([d9413de](d9413deec...

Read more

v0.15.3

24 Aug 16:03
Compare
Choose a tag to compare

0.15.3 (2021-08-24)

v0.15.2

11 Aug 15:54
Compare
Choose a tag to compare

0.15.2 (2021-08-11)

Features

  • priority: allow setting priority of a stream (a0cf893)

v0.15.1

11 Aug 15:43
Compare
Choose a tag to compare

0.15.1 (2021-08-11)

v0.15.0

11 Aug 10:25
Compare
Choose a tag to compare

0.15.0 (2021-08-11)

⚠ BREAKING CHANGES

  • The Error::QuinnConnectionClosed variant has been
    renamed Error::ConnectionClosed and now contains closure information.
    The Error::Connection variant has been renamed
    Error::ConnectionError, and now contains a ConnectionError.
    quinn::ConnectionError is no longer re-exported.

  • Separate connection close from errors (4d3d4eb)

v0.14.1

11 Aug 00:21
Compare
Choose a tag to compare

0.14.1 (2021-08-11)

v0.14.0

03 Aug 10:48
Compare
Choose a tag to compare

0.14.0 (2021-08-03)

⚠ BREAKING CHANGES

  • quinn: config change

Bug Fixes

  • ci: ignore quinn test on CI (5f7b9f0)
  • clippy: update to use latest version of rust (18d48c4)
  • disconnections: remove connection from pool before signalling disconnection event (d45204c)
  • quinn: disable stateless retry in quinn config (0f5df36)

v0.13.0

03 Aug 07:25
Compare
Choose a tag to compare

0.13.0 (2021-08-03)

⚠ BREAKING CHANGES

  • id: introduces generic type to Qp2p and Endpoint

Features

  • id: keep a track of connections using a connection ID within qp2p (10c8ea0)

Bug Fixes

  • api: rename type parameter after rebase (8b2ad02)