use getserviceip::{run, IpInfo};
use std::net::TcpListener;
use std::sync::{Arc, Mutex};
pub fn spawn() -> (String, Arc<Mutex<Vec<IpInfo>>>) {
let listener = TcpListener::bind("127.0.0.1:0").expect("Failed to bind random port");
let port = listener.local_addr().unwrap().port();
let state = Arc::new(Mutex::new(Vec::<IpInfo>::new()));
let server = run(listener, state.clone()).expect("Failed to bind address");
#[allow(clippy::let_underscore_future)]
let _ = tokio::spawn(server);
(format!("http://127.0.0.1:{}", port), state)
}