Add a node-specific ip echo service to remove dependency on ifconfig.co (#4137)
This commit is contained in:
@ -7,7 +7,7 @@ use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::signature::{Signable, Signature};
|
||||
use solana_sdk::timing::timestamp;
|
||||
use std::cmp::{Ord, Ordering, PartialEq, PartialOrd};
|
||||
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
||||
use std::net::{IpAddr, SocketAddr};
|
||||
|
||||
/// Structure representing a node on the network
|
||||
#[derive(Serialize, Deserialize, Clone, Debug)]
|
||||
@ -56,7 +56,7 @@ impl Eq for ContactInfo {}
|
||||
#[macro_export]
|
||||
macro_rules! socketaddr {
|
||||
($ip:expr, $port:expr) => {
|
||||
std::net::SocketAddr::from((Ipv4Addr::from($ip), $port))
|
||||
std::net::SocketAddr::from((std::net::Ipv4Addr::from($ip), $port))
|
||||
};
|
||||
($str:expr) => {{
|
||||
let a: std::net::SocketAddr = $str.parse().unwrap();
|
||||
|
@ -74,6 +74,7 @@ pub struct Fullnode {
|
||||
poh_service: PohService,
|
||||
tpu: Tpu,
|
||||
tvu: Tvu,
|
||||
ip_echo_server: solana_netutil::IpEchoServer,
|
||||
}
|
||||
|
||||
impl Fullnode {
|
||||
@ -159,6 +160,9 @@ impl Fullnode {
|
||||
))
|
||||
};
|
||||
|
||||
let ip_echo_server =
|
||||
solana_netutil::ip_echo_server(node.sockets.gossip.local_addr().unwrap().port());
|
||||
|
||||
let subscriptions = Arc::new(RpcSubscriptions::default());
|
||||
let rpc_pubsub_service = if node.info.rpc_pubsub.port() == 0 {
|
||||
None
|
||||
@ -270,6 +274,7 @@ impl Fullnode {
|
||||
exit,
|
||||
poh_service,
|
||||
poh_recorder,
|
||||
ip_echo_server,
|
||||
}
|
||||
}
|
||||
|
||||
@ -329,6 +334,7 @@ impl Service for Fullnode {
|
||||
self.gossip_service.join()?;
|
||||
self.tpu.join()?;
|
||||
self.tvu.join()?;
|
||||
self.ip_echo_server.shutdown_now();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -618,7 +618,7 @@ mod tests {
|
||||
use solana_sdk::system_transaction;
|
||||
use std::io;
|
||||
use std::io::Write;
|
||||
use std::net::{Ipv4Addr, SocketAddr, UdpSocket};
|
||||
use std::net::{SocketAddr, UdpSocket};
|
||||
|
||||
#[test]
|
||||
fn test_packets_set_addr() {
|
||||
|
Reference in New Issue
Block a user