diff --git a/src/main.rs b/src/main.rs index 137a4b3..40b78b9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use async_std::{fs, task}; -use async_std::net::UdpSocket; +use async_std::net::{UdpSocket, Ipv6Addr}; use async_std::path::PathBuf; use async_std::sync::Arc; use clap::{load_yaml, App}; @@ -15,8 +15,11 @@ type Config = toml::map::Map; async fn peer_discovery_recv() { let socket = UdpSocket::bind(":::8008").await.unwrap(); + let all_nodes_addr = Ipv6Addr::new(0xFF02, 0, 0, 0, 0, 0, 0, 0x02); let mut buf = [0u8; 1024]; + socket.join_multicast_v6(&all_nodes_addr, 0).unwrap(); + loop { let (amt, peer) = socket.recv_from(&mut buf).await.unwrap(); let buf = &mut buf[..amt]; @@ -39,6 +42,7 @@ async fn peer_discovery_send(pubkey: Arc) { loop { println!("Sending packet: {:?}", &msg); socket.send_to(&buf, "255.255.255.255:8008").await.unwrap(); + socket.send_to(&buf, "[FF02::2]:8008").await.unwrap(); task::sleep(std::time::Duration::from_secs(1)).await; } }