Move src/netutil.rs into its own crate
This commit is contained in:
		
							
								
								
									
										17
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -1744,13 +1744,11 @@ dependencies = [ | ||||
|  "hashbrown 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "ipnetwork 0.12.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "pnet_datalink 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
| @@ -1777,6 +1775,7 @@ dependencies = [ | ||||
|  "solana-lualoader 0.11.0", | ||||
|  "solana-metrics 0.11.0", | ||||
|  "solana-native-loader 0.11.0", | ||||
|  "solana-netutil 0.11.0", | ||||
|  "solana-noop 0.11.0", | ||||
|  "solana-sdk 0.11.0", | ||||
|  "solana-storage-program 0.11.0", | ||||
| @@ -2113,6 +2112,20 @@ dependencies = [ | ||||
|  "solana-sdk 0.11.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "solana-netutil" | ||||
| version = "0.11.0" | ||||
| dependencies = [ | ||||
|  "ipnetwork 0.12.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "pnet_datalink 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||||
|  "solana-logger 0.11.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "solana-noop" | ||||
| version = "0.11.0" | ||||
|   | ||||
| @@ -34,13 +34,11 @@ dirs = "1.0.2" | ||||
| generic-array = { version = "0.12.0", default-features = false, features = ["serde"] } | ||||
| hex-literal = "0.1.1" | ||||
| indexmap = "1.0" | ||||
| ipnetwork = "0.12.7" | ||||
| itertools = "0.8.0" | ||||
| libc = "0.2.45" | ||||
| log = "0.4.2" | ||||
| matches = "0.1.6" | ||||
| nix = "0.12.0" | ||||
| pnet_datalink = "0.21.0" | ||||
| rand = "0.6.1" | ||||
| rand_chacha = "0.1.0" | ||||
| rayon = "1.0.0" | ||||
| @@ -67,6 +65,7 @@ solana-logger = { path = "logger", version = "0.11.0" } | ||||
| solana-lualoader = { path = "programs/native/lua_loader", version = "0.11.0" } | ||||
| solana-metrics = { path = "metrics", version = "0.11.0" } | ||||
| solana-native-loader = { path = "programs/native/native_loader", version = "0.11.0" } | ||||
| solana-netutil = { path = "netutil", version = "0.11.0" } | ||||
| solana-noop = { path = "programs/native/noop", version = "0.11.0" } | ||||
| solana-sdk = { path = "sdk", version = "0.11.0" } | ||||
| solana-storage-program = { path = "programs/native/storage", version = "0.11.0" } | ||||
|   | ||||
| @@ -12,6 +12,7 @@ cd "$(dirname "$0")/.." | ||||
| # | ||||
| CRATES=( | ||||
|   logger | ||||
|   netutil | ||||
|   sdk | ||||
|   keygen | ||||
|   metrics | ||||
|   | ||||
							
								
								
									
										24
									
								
								netutil/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								netutil/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| [package] | ||||
| name = "solana-netutil" | ||||
| version = "0.11.0" | ||||
| description = "Solana Network Utilities" | ||||
| authors = ["Solana Maintainers <maintainers@solana.com>"] | ||||
| repository = "https://github.com/solana-labs/solana" | ||||
| license = "Apache-2.0" | ||||
| homepage = "https://solana.com/" | ||||
| edition = "2018" | ||||
|  | ||||
| [dependencies] | ||||
| log = "0.4.2" | ||||
| ipnetwork = "0.12.7" | ||||
| nix = "0.12.0" | ||||
| pnet_datalink = "0.21.0" | ||||
| rand = "0.6.1" | ||||
| reqwest = "0.9.0" | ||||
| socket2 = "0.3.8" | ||||
|  | ||||
| [dev-dependencies] | ||||
| solana-logger = { path = "../logger", version = "0.11.0" } | ||||
|  | ||||
| [lib] | ||||
| name = "solana_netutil" | ||||
| @@ -1,5 +1,5 @@ | ||||
| //! The `netutil` module assists with networking
 | ||||
| 
 | ||||
| use log::trace; | ||||
| use nix::sys::socket::setsockopt; | ||||
| use nix::sys::socket::sockopt::{ReuseAddr, ReusePort}; | ||||
| use pnet_datalink as datalink; | ||||
| @@ -203,10 +203,8 @@ pub fn find_available_port_in_range(range: (u16, u16)) -> io::Result<u16> { | ||||
| 
 | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
| 
 | ||||
|     use crate::netutil::*; | ||||
|     use super::*; | ||||
|     use ipnetwork::IpNetwork; | ||||
|     use pnet_datalink as datalink; | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_find_eth0ish_ip_addr() { | ||||
| @@ -1,8 +1,7 @@ | ||||
| use crate::cluster_info::{NodeInfo, FULLNODE_PORT_RANGE}; | ||||
| use crate::netutil::bind_in_range; | ||||
| use crate::thin_client::ThinClient; | ||||
|  | ||||
| pub fn mk_client(r: &NodeInfo) -> ThinClient { | ||||
|     let (_, transactions_socket) = bind_in_range(FULLNODE_PORT_RANGE).unwrap(); | ||||
|     let (_, transactions_socket) = solana_netutil::bind_in_range(FULLNODE_PORT_RANGE).unwrap(); | ||||
|     ThinClient::new(r.rpc, r.tpu, transactions_socket) | ||||
| } | ||||
|   | ||||
| @@ -20,7 +20,6 @@ use crate::crds_gossip_error::CrdsGossipError; | ||||
| use crate::crds_gossip_pull::CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; | ||||
| use crate::crds_value::{CrdsValue, CrdsValueLabel, LeaderId}; | ||||
| use crate::db_ledger::{DbLedger, LedgerColumnFamily, MetaCf, DEFAULT_SLOT_HEIGHT}; | ||||
| use crate::netutil::{bind_in_range, bind_to, find_available_port_in_range, multi_bind_in_range}; | ||||
| use crate::packet::{to_blob, Blob, SharedBlob, BLOB_SIZE}; | ||||
| use crate::result::Result; | ||||
| use crate::rpc::RPC_PORT; | ||||
| @@ -32,6 +31,7 @@ use log::Level; | ||||
| use rand::{thread_rng, Rng}; | ||||
| use rayon::prelude::*; | ||||
| use solana_metrics::{influxdb, submit}; | ||||
| use solana_netutil::{bind_in_range, bind_to, find_available_port_in_range, multi_bind_in_range}; | ||||
| use solana_sdk::hash::Hash; | ||||
| use solana_sdk::pubkey::Pubkey; | ||||
| use solana_sdk::signature::{Keypair, KeypairUtil, Signable, Signature}; | ||||
|   | ||||
| @@ -43,7 +43,6 @@ pub mod leader_scheduler; | ||||
| pub mod ledger; | ||||
| pub mod ledger_write_stage; | ||||
| pub mod mint; | ||||
| pub mod netutil; | ||||
| pub mod packet; | ||||
| pub mod poh; | ||||
| pub mod poh_recorder; | ||||
|   | ||||
| @@ -107,7 +107,7 @@ mod tests { | ||||
|     use super::*; | ||||
|     use crate::cluster_info::ClusterInfo; | ||||
|     use crate::contact_info::ContactInfo; | ||||
|     use crate::netutil::bind_in_range; | ||||
|     use solana_netutil::bind_in_range; | ||||
|     use solana_sdk::pubkey::Pubkey; | ||||
|     use std::net::UdpSocket; | ||||
|     use std::net::{Ipv4Addr, SocketAddr}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user