use rust_iscsi_initiator::discovery::Discovery; use std::env; /// iscsi-ls tool - List iSCSI targets #[tokio::main] async fn main() { env_logger::init(); let args: Vec = env::args().collect(); if args.len() < 2 { println!("Usage: iscsi-ls "); println!("Example: iscsi-ls 192.168.1.1:3260"); return; } let portal = &args[1]; println!("Discovering targets at {}...", portal); let mut discovery = Discovery::new(); match discovery.connect(portal).await { Ok(_) => { match discovery.send_targets().await { Ok(targets) => { if targets.is_empty() { println!("No targets found"); } else { println!("Found {} targets:", targets.len()); for target in targets { println!(" {}", target); } } } Err(e) => { eprintln!("Discovery error: {}", e); } } discovery.disconnect().await.ok(); } Err(e) => { eprintln!("Connection error: {}", e); } } }