mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-13 01:51:23 +00:00
swarm/: Enable advanced dialing requests (#2317)
Enable advanced dialing requests both on `Swarm` and via `NetworkBehaviourAction`. Users can now trigger a dial with a specific set of addresses, optionally extended via `NetworkBehaviour::addresses_of_peer`. In addition the whole process is now modelled in a type safe way via the builder pattern. Example of a `NetworkBehaviour` requesting a dial to a specific peer with a set of addresses additionally extended through `NetworkBehaviour::addresses_of_peer`: ```rust NetworkBehaviourAction::Dial { opts: DialOpts::peer_id(peer_id) .condition(PeerCondition::Always) .addresses(addresses) .extend_addresses_through_behaviour() .build(), handler, } ``` Example of a user requesting a dial to an unknown peer with a single address via `Swarm`: ```rust swarm1.dial( DialOpts::unknown_peer_id() .address(addr2.clone()) .build() ) ```
This commit is contained in:
@ -65,7 +65,7 @@ use libp2p::relay::{Relay, RelayConfig};
|
||||
use libp2p::swarm::SwarmEvent;
|
||||
use libp2p::tcp::TcpConfig;
|
||||
use libp2p::Transport;
|
||||
use libp2p::{core::upgrade, identity::ed25519, ping};
|
||||
use libp2p::{core::upgrade, identity::ed25519, ping, Multiaddr};
|
||||
use libp2p::{identity, NetworkBehaviour, PeerId, Swarm};
|
||||
use std::error::Error;
|
||||
use std::task::{Context, Poll};
|
||||
@ -129,8 +129,8 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
println!("starting client listener via relay on {}", &relay_address);
|
||||
}
|
||||
Mode::ClientDial => {
|
||||
let client_listen_address = get_client_listen_address(&opt);
|
||||
swarm.dial_addr(client_listen_address.parse()?)?;
|
||||
let client_listen_address: Multiaddr = get_client_listen_address(&opt).parse()?;
|
||||
swarm.dial(client_listen_address.clone())?;
|
||||
println!("starting as client dialer on {}", client_listen_address);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user