mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 23:29:39 +00:00 
			
		
		
		
	network: inter-container networking support
This commit is contained in:
		@ -1,35 +1,15 @@
 | 
			
		||||
use std::str::FromStr;
 | 
			
		||||
 | 
			
		||||
use advmac::MacAddr6;
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use clap::Parser;
 | 
			
		||||
use env_logger::Env;
 | 
			
		||||
use hyphanet::NetworkService;
 | 
			
		||||
 | 
			
		||||
#[derive(Parser, Debug)]
 | 
			
		||||
struct NetworkArgs {
 | 
			
		||||
    #[arg(long, default_value = "192.168.42.1/24")]
 | 
			
		||||
    ipv4_network: String,
 | 
			
		||||
struct NetworkArgs {}
 | 
			
		||||
 | 
			
		||||
    #[arg(long, default_value = "fe80::1/10")]
 | 
			
		||||
    ipv6_network: String,
 | 
			
		||||
 | 
			
		||||
    #[arg(long)]
 | 
			
		||||
    force_mac_address: Option<String>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::main]
 | 
			
		||||
#[tokio::main(flavor = "multi_thread", worker_threads = 10)]
 | 
			
		||||
async fn main() -> Result<()> {
 | 
			
		||||
    env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
 | 
			
		||||
    let args = NetworkArgs::parse();
 | 
			
		||||
 | 
			
		||||
    let force_mac_address = if let Some(mac_str) = args.force_mac_address {
 | 
			
		||||
        Some(MacAddr6::from_str(&mac_str)?)
 | 
			
		||||
    } else {
 | 
			
		||||
        None
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let mut service = NetworkService::new(args.ipv4_network, args.ipv6_network, force_mac_address)?;
 | 
			
		||||
    service.watch().await?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
    let _ = NetworkArgs::parse();
 | 
			
		||||
    let mut service = NetworkService::new()?;
 | 
			
		||||
    service.watch().await
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user