X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fcli.rs;h=dc8bb407942e289ffaec47eb37b5922bfb2dd1f2;hb=0cbff7f763b02f0b2b535a723300165834cbfc56;hp=04b18f9815acc858ff92a0820227941bc7265598;hpb=bb94f28a1faa695ff5f0f66c05811a7cb739c101;p=ldk-sample diff --git a/src/cli.rs b/src/cli.rs index 04b18f9..dc8bb40 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -18,7 +18,7 @@ use lightning_invoice::{utils, Currency, Invoice}; use std::env; use std::io; use std::io::{BufRead, Write}; -use std::net::SocketAddr; +use std::net::{SocketAddr, ToSocketAddrs}; use std::ops::Deref; use std::path::Path; use std::str::FromStr; @@ -406,7 +406,7 @@ fn list_channels(channel_manager: Arc) { } println!("\t\tpending_open: {},", pending_channel); println!("\t\tchannel_value_satoshis: {},", chan_info.channel_value_satoshis); - println!("\t\tchannel_can_send_payments: {},", chan_info.is_live); + println!("\t\tchannel_can_send_payments: {},", chan_info.is_usable); println!("\t}},"); } println!("]"); @@ -463,7 +463,14 @@ pub(crate) async fn connect_peer_if_necessary( return Ok(()); } } - match lightning_net_tokio::connect_outbound(Arc::clone(&peer_manager), event_notifier, pubkey, peer_addr).await { + match lightning_net_tokio::connect_outbound( + Arc::clone(&peer_manager), + event_notifier, + pubkey, + peer_addr, + ) + .await + { Some(conn_closed_fut) => { let mut closed_fut_box = Box::pin(conn_closed_fut); let mut peer_connected = false; @@ -472,7 +479,7 @@ pub(crate) async fn connect_peer_if_necessary( std::task::Poll::Ready(_) => { println!("ERROR: Peer disconnected before we finished the handshake"); return Err(()); - }, + } std::task::Poll::Pending => {} } for node_pubkey in peer_manager.get_peer_node_ids() { @@ -631,13 +638,12 @@ pub(crate) fn parse_peer_info( if peer_addr_str.is_none() || peer_addr_str.is_none() { return Err(std::io::Error::new( std::io::ErrorKind::Other, - "ERROR: incorrectly formatted peer - info. Should be formatted as: `pubkey@host:port`", + "ERROR: incorrectly formatted peer info. Should be formatted as: `pubkey@host:port`", )); } - let peer_addr: Result = peer_addr_str.unwrap().parse(); - if peer_addr.is_err() { + let peer_addr = peer_addr_str.unwrap().to_socket_addrs().map(|mut r| r.next()); + if peer_addr.is_err() || peer_addr.as_ref().unwrap().is_none() { return Err(std::io::Error::new( std::io::ErrorKind::Other, "ERROR: couldn't parse pubkey@host:port into a socket address", @@ -652,5 +658,5 @@ pub(crate) fn parse_peer_info( )); } - Ok((pubkey.unwrap(), peer_addr.unwrap())) + Ok((pubkey.unwrap(), peer_addr.unwrap().unwrap())) }