Remove ipv6 feature
This commit is contained in:
parent
d708982f27
commit
9c44c173df
|
@ -17,7 +17,6 @@ codecov = { repository = "solana-labs/solana", branch = "master", service = "git
|
||||||
chacha = ["solana/chacha"]
|
chacha = ["solana/chacha"]
|
||||||
cuda = ["solana/cuda"]
|
cuda = ["solana/cuda"]
|
||||||
erasure = ["solana/erasure"]
|
erasure = ["solana/erasure"]
|
||||||
ipv6 = ["solana/ipv6", "solana-netutil/ipv6"]
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bincode = "1.1.2"
|
bincode = "1.1.2"
|
||||||
|
|
|
@ -17,7 +17,6 @@ codecov = { repository = "solana-labs/solana", branch = "master", service = "git
|
||||||
chacha = []
|
chacha = []
|
||||||
cuda = []
|
cuda = []
|
||||||
erasure = []
|
erasure = []
|
||||||
ipv6 = ["solana-netutil/ipv6"]
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bincode = "1.1.2"
|
bincode = "1.1.2"
|
||||||
|
|
|
@ -24,7 +24,7 @@ impl Config {
|
||||||
let mut bind_addr =
|
let mut bind_addr =
|
||||||
solana_netutil::parse_port_or_addr(&self.bind_port_or_address, default_port);
|
solana_netutil::parse_port_or_addr(&self.bind_port_or_address, default_port);
|
||||||
if self.use_local_address {
|
if self.use_local_address {
|
||||||
let ip = solana_netutil::get_ip_addr().unwrap();
|
let ip = solana_netutil::get_ip_addr(false).unwrap();
|
||||||
bind_addr.set_ip(ip);
|
bind_addr.set_ip(ip);
|
||||||
}
|
}
|
||||||
if self.use_public_address {
|
if self.use_public_address {
|
||||||
|
|
|
@ -27,4 +27,3 @@ solana-vote-signer = { path = "../vote-signer", version = "0.12.0" }
|
||||||
chacha = ["solana/chacha"]
|
chacha = ["solana/chacha"]
|
||||||
cuda = ["solana/cuda"]
|
cuda = ["solana/cuda"]
|
||||||
erasure = ["solana/erasure"]
|
erasure = ["solana/erasure"]
|
||||||
ipv6 = ["solana/ipv6"]
|
|
||||||
|
|
|
@ -8,9 +8,6 @@ license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[features]
|
|
||||||
ipv6 = []
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
ipnetwork = "0.12.7"
|
ipnetwork = "0.12.7"
|
||||||
|
|
|
@ -48,7 +48,10 @@ pub fn parse_port_or_addr(optstr: &Option<String>, default_port: u16) -> SocketA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn find_eth0ish_ip_addr(ifaces: &mut Vec<datalink::NetworkInterface>) -> Option<IpAddr> {
|
fn find_eth0ish_ip_addr(
|
||||||
|
ifaces: &mut Vec<datalink::NetworkInterface>,
|
||||||
|
enable_ipv6: bool,
|
||||||
|
) -> Option<IpAddr> {
|
||||||
// put eth0 and wifi0, etc. up front of our list of candidates
|
// put eth0 and wifi0, etc. up front of our list of candidates
|
||||||
ifaces.sort_by(|a, b| {
|
ifaces.sort_by(|a, b| {
|
||||||
a.name
|
a.name
|
||||||
|
@ -84,9 +87,8 @@ fn find_eth0ish_ip_addr(ifaces: &mut Vec<datalink::NetworkInterface>) -> Option<
|
||||||
return Some(p.ip());
|
return Some(p.ip());
|
||||||
}
|
}
|
||||||
IpAddr::V6(_addr) => {
|
IpAddr::V6(_addr) => {
|
||||||
// Select an ipv6 address if the config is selected
|
// Select an ipv6 address if requested
|
||||||
#[cfg(feature = "ipv6")]
|
if enable_ipv6 {
|
||||||
{
|
|
||||||
if p.ip().is_loopback() {
|
if p.ip().is_loopback() {
|
||||||
trace!(" loopback");
|
trace!(" loopback");
|
||||||
lo = Some(p.ip());
|
lo = Some(p.ip());
|
||||||
|
@ -102,10 +104,9 @@ fn find_eth0ish_ip_addr(ifaces: &mut Vec<datalink::NetworkInterface>) -> Option<
|
||||||
lo
|
lo
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_ip_addr() -> Option<IpAddr> {
|
pub fn get_ip_addr(enable_ipv6: bool) -> Option<IpAddr> {
|
||||||
let mut ifaces = datalink::interfaces();
|
let mut ifaces = datalink::interfaces();
|
||||||
|
find_eth0ish_ip_addr(&mut ifaces, enable_ipv6)
|
||||||
find_eth0ish_ip_addr(&mut ifaces)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn udp_socket(reuseaddr: bool) -> io::Result<Socket> {
|
fn udp_socket(reuseaddr: bool) -> io::Result<Socket> {
|
||||||
|
@ -224,56 +225,68 @@ mod tests {
|
||||||
|
|
||||||
// loopback bad when alternatives exist
|
// loopback bad when alternatives exist
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![
|
find_eth0ish_ip_addr(
|
||||||
mock_interface!(eth0, "192.168.137.1/8"),
|
&mut vec![
|
||||||
mock_interface!(lo, "127.0.0.1/24")
|
mock_interface!(eth0, "192.168.137.1/8"),
|
||||||
]),
|
mock_interface!(lo, "127.0.0.1/24")
|
||||||
|
],
|
||||||
|
false
|
||||||
|
),
|
||||||
Some(mock_interface!(eth0, "192.168.137.1/8").ips[0].ip())
|
Some(mock_interface!(eth0, "192.168.137.1/8").ips[0].ip())
|
||||||
);
|
);
|
||||||
// find loopback as a last resort
|
// find loopback as a last resort
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![mock_interface!(lo, "127.0.0.1/24")]),
|
find_eth0ish_ip_addr(&mut vec![mock_interface!(lo, "127.0.0.1/24")], false),
|
||||||
Some(mock_interface!(lo, "127.0.0.1/24").ips[0].ip()),
|
Some(mock_interface!(lo, "127.0.0.1/24").ips[0].ip()),
|
||||||
);
|
);
|
||||||
// multicast bad
|
// multicast bad
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![mock_interface!(eth0, "224.0.1.5/24")]),
|
find_eth0ish_ip_addr(&mut vec![mock_interface!(eth0, "224.0.1.5/24")], false),
|
||||||
None
|
None
|
||||||
);
|
);
|
||||||
|
|
||||||
// finds "wifi0"
|
// finds "wifi0"
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![
|
find_eth0ish_ip_addr(
|
||||||
mock_interface!(eth0, "224.0.1.5/24"),
|
&mut vec![
|
||||||
mock_interface!(eth2, "192.168.137.1/8"),
|
mock_interface!(eth0, "224.0.1.5/24"),
|
||||||
mock_interface!(eth3, "10.0.75.1/8"),
|
mock_interface!(eth2, "192.168.137.1/8"),
|
||||||
mock_interface!(eth4, "172.22.140.113/4"),
|
mock_interface!(eth3, "10.0.75.1/8"),
|
||||||
mock_interface!(lo, "127.0.0.1/24"),
|
mock_interface!(eth4, "172.22.140.113/4"),
|
||||||
mock_interface!(wifi0, "192.168.1.184/8"),
|
mock_interface!(lo, "127.0.0.1/24"),
|
||||||
]),
|
mock_interface!(wifi0, "192.168.1.184/8"),
|
||||||
|
],
|
||||||
|
false
|
||||||
|
),
|
||||||
Some(mock_interface!(wifi0, "192.168.1.184/8").ips[0].ip())
|
Some(mock_interface!(wifi0, "192.168.1.184/8").ips[0].ip())
|
||||||
);
|
);
|
||||||
// finds "wifi0" in the middle
|
// finds "wifi0" in the middle
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![
|
find_eth0ish_ip_addr(
|
||||||
mock_interface!(eth0, "224.0.1.5/24"),
|
&mut vec![
|
||||||
mock_interface!(eth2, "192.168.137.1/8"),
|
mock_interface!(eth0, "224.0.1.5/24"),
|
||||||
mock_interface!(eth3, "10.0.75.1/8"),
|
mock_interface!(eth2, "192.168.137.1/8"),
|
||||||
mock_interface!(wifi0, "192.168.1.184/8"),
|
mock_interface!(eth3, "10.0.75.1/8"),
|
||||||
mock_interface!(eth4, "172.22.140.113/4"),
|
mock_interface!(wifi0, "192.168.1.184/8"),
|
||||||
mock_interface!(lo, "127.0.0.1/24"),
|
mock_interface!(eth4, "172.22.140.113/4"),
|
||||||
]),
|
mock_interface!(lo, "127.0.0.1/24"),
|
||||||
|
],
|
||||||
|
false
|
||||||
|
),
|
||||||
Some(mock_interface!(wifi0, "192.168.1.184/8").ips[0].ip())
|
Some(mock_interface!(wifi0, "192.168.1.184/8").ips[0].ip())
|
||||||
);
|
);
|
||||||
// picks "eth2", is lowest valid "eth"
|
// picks "eth2", is lowest valid "eth"
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
find_eth0ish_ip_addr(&mut vec![
|
find_eth0ish_ip_addr(
|
||||||
mock_interface!(eth0, "224.0.1.5/24"),
|
&mut vec![
|
||||||
mock_interface!(eth2, "192.168.137.1/8"),
|
mock_interface!(eth0, "224.0.1.5/24"),
|
||||||
mock_interface!(eth3, "10.0.75.1/8"),
|
mock_interface!(eth2, "192.168.137.1/8"),
|
||||||
mock_interface!(eth4, "172.22.140.113/4"),
|
mock_interface!(eth3, "10.0.75.1/8"),
|
||||||
mock_interface!(lo, "127.0.0.1/24"),
|
mock_interface!(eth4, "172.22.140.113/4"),
|
||||||
]),
|
mock_interface!(lo, "127.0.0.1/24"),
|
||||||
|
],
|
||||||
|
false
|
||||||
|
),
|
||||||
Some(mock_interface!(eth2, "192.168.137.1/8").ips[0].ip())
|
Some(mock_interface!(eth2, "192.168.137.1/8").ips[0].ip())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue