Use public IP for client gossip, if UPnP fails (#665)
This commit is contained in:
parent
1fb537deb9
commit
103584ef27
|
@ -365,6 +365,8 @@ fn spy_node() -> (NodeInfo, UdpSocket) {
|
|||
let gossip_socket_pair = udp_public_bind("gossip", 8000, 10000);
|
||||
let pubkey = KeyPair::new().pubkey();
|
||||
let daddr = "0.0.0.0:0".parse().unwrap();
|
||||
assert!(!gossip_socket_pair.addr.ip().is_unspecified());
|
||||
assert!(!gossip_socket_pair.addr.ip().is_multicast());
|
||||
let node = NodeInfo::new(
|
||||
pubkey,
|
||||
//gossip.local_addr().unwrap(),
|
||||
|
|
|
@ -106,9 +106,13 @@ pub fn udp_public_bind(label: &str, startport: u16, endport: u16) -> UdpSocketPa
|
|||
Err(_) => {
|
||||
let sender = udp_random_bind(startport, endport, 5).unwrap();
|
||||
let local_addr = sender.local_addr().unwrap();
|
||||
info!("Using local address {} for {}", local_addr, label);
|
||||
|
||||
let pub_ip = get_public_ip_addr().unwrap();
|
||||
let pub_addr = SocketAddr::new(pub_ip, local_addr.port());
|
||||
|
||||
info!("Using source address {} for {}", pub_addr, label);
|
||||
UdpSocketPair {
|
||||
addr: private_addr,
|
||||
addr: pub_addr,
|
||||
receiver: sender.try_clone().unwrap(),
|
||||
sender,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue