mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 23:29:39 +00:00 
			
		
		
		
	network: implement TCP proxy NAT via smoltcp
This commit is contained in:
		@ -1,3 +1,6 @@
 | 
			
		||||
use std::str::FromStr;
 | 
			
		||||
 | 
			
		||||
use advmac::MacAddr6;
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use clap::Parser;
 | 
			
		||||
use env_logger::Env;
 | 
			
		||||
@ -10,13 +13,23 @@ struct NetworkArgs {
 | 
			
		||||
 | 
			
		||||
    #[arg(long, default_value = "fe80::1/10")]
 | 
			
		||||
    ipv6_network: String,
 | 
			
		||||
 | 
			
		||||
    #[arg(long)]
 | 
			
		||||
    force_mac_address: Option<String>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::main]
 | 
			
		||||
async fn main() -> Result<()> {
 | 
			
		||||
    env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
 | 
			
		||||
    let args = NetworkArgs::parse();
 | 
			
		||||
    let mut service = NetworkService::new(args.ipv4_network, args.ipv6_network)?;
 | 
			
		||||
 | 
			
		||||
    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(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user