diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 4 | ||||
| -rw-r--r-- | src/upnp.rs | 15 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 4205b78..3db18f7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ use std::path::Path; use std::process; mod cli; +mod upnp; fn main() { let app = App::new("Rustcast") @@ -31,5 +32,6 @@ fn main() { } // test a single char read - cli::read_char(); + // cli::read_char(); + upnp::discover(); } diff --git a/src/upnp.rs b/src/upnp.rs new file mode 100644 index 0000000..de67c9c --- /dev/null +++ b/src/upnp.rs @@ -0,0 +1,15 @@ +use std::net::UdpSocket; + +const SEARCH_REQUEST: &'static str = "M-SEARCH * HTTP/1.1\r\n +Host: 239.255.255.250:1900\r\n +Man: \"ssdp:discover\"\r\n +ST: ssdp:all\r\n +MX: 3\r\n +User-Agent: rustcast/0.1.0\r\n\r\n"; + +pub fn discover() { + println!("Discovering..."); + let socket = UdpSocket::bind("[::]:0").unwrap(); + socket.connect("239.255.255.250:1900").unwrap(); + socket.send_to(SEARCH_REQUEST.as_bytes(), "239.255.255.250:1900").expect("couldn't send data"); +} |
