mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-14 02:21:21 +00:00
Cherry-pick commits from master to stable-futures (#1296)
* Implement Debug for (ed25519|secp256k1)::(Keypair|SecretKey) (#1285) * Fix possible arithmetic overflow in libp2p-kad. (#1291) When the number of active queries exceeds the (internal) JOBS_MAX_QUERIES limit, which is only supposed to bound the number of concurrent queries relating to background jobs, an arithmetic overflow occurs. This is fixed by using saturating subtraction. * protocols/plaintext: Add example on how to upgrade with PlainTextConfig1 (#1286) * [mdns] - Support for long mDNS names (Bug #1232) (#1287) * Dead code -- commenting out with a note referencing future implementation * Adding "std" feature so that cargo can build in other directories (notably `misc/mdns`, so that I could run these tests) * Permitting `PeerID` to be built from an `Identity` multihash * The length limit for DNS labels is 63 characters, as per RFC1035 * Allocates the vector with capacity for the service name plus additional QNAME encoding bytes * Added support for encoding/decoding peer IDs with an encoded length greater than 63 characters * Removing "std" from ring features Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com> * Retaining MAX_INLINE_KEY_LENGTH with comment about future usage * `segment_peer_id` consumes `peer_id` ... plus an early return for IDs that don't need to be segmented * Fixing logic * Bump most dependencies (#1268) * Bump most dependencies This actually builds 😊. * Bump all dependencies Includes the excellent work of @rschulman in #1265. * Remove use of ed25519-dalek fork * Monomorphize more dependencies * Add compatibility hack for rand Cargo allows a crate to depend on multiple versions of another, but `cargo-web` panics in that situation. Use a wrapper crate to work around the panic. * Use @tomaka’s idea for using a newer `rand` instead of my own ugly hack. * Switch to Parity master as its dependency-bumping PR has been merged. * Update some depenendencies again * Remove unwraps and `#[allow(deprecated)]`. * Remove spurious changes to dependencies Bumping minor or patch versions is not needed, and increases likelyhood of merge conflicts. * Remove some redundant Cargo.toml changes * Replace a retry loop with an expect `ed25519::SecretKey::from_bytes` will never fail for 32-byte inputs. * Revert changes that don’t belong in this PR * Remove using void to bypass ICE (#1295) * Publish 0.13.0 (#1294)
This commit is contained in:
@ -32,6 +32,32 @@ mod error;
|
||||
mod handshake;
|
||||
mod pb;
|
||||
|
||||
/// `PlainText1Config` is an insecure connection handshake for testing purposes only.
|
||||
///
|
||||
/// > **Note**: Given that `PlainText1Config` has no notion of exchanging peer identity information it is not compatible
|
||||
/// > with the `libp2p_core::transport::upgrade::Builder` pattern. See
|
||||
/// > [`PlainText2Config`](struct.PlainText2Config.html) if compatibility is needed. Even though not compatible with the
|
||||
/// > Builder pattern one can still do an upgrade *manually*:
|
||||
///
|
||||
/// ```
|
||||
/// # use libp2p_core::transport::{ Transport, memory::MemoryTransport };
|
||||
/// # use libp2p_plaintext::PlainText1Config;
|
||||
/// #
|
||||
/// MemoryTransport::default()
|
||||
/// .and_then(move |io, endpoint| {
|
||||
/// libp2p_core::upgrade::apply(
|
||||
/// io,
|
||||
/// PlainText1Config{},
|
||||
/// endpoint,
|
||||
/// libp2p_core::transport::upgrade::Version::V1,
|
||||
/// )
|
||||
/// })
|
||||
/// .map(|plaintext, _endpoint| {
|
||||
/// unimplemented!();
|
||||
/// // let peer_id = somehow_derive_peer_id();
|
||||
/// // return (peer_id, plaintext);
|
||||
/// });
|
||||
/// ```
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct PlainText1Config;
|
||||
|
||||
@ -64,6 +90,8 @@ impl<C> OutboundUpgrade<C> for PlainText1Config {
|
||||
}
|
||||
}
|
||||
|
||||
/// `PlainText2Config` is an insecure connection handshake for testing purposes only, implementing
|
||||
/// the libp2p plaintext connection handshake specification.
|
||||
#[derive(Clone)]
|
||||
pub struct PlainText2Config {
|
||||
pub local_public_key: identity::PublicKey,
|
||||
|
Reference in New Issue
Block a user