A little personal experiment to: 1) learn the Rust's networking (and specifically UDP related) APIs 1) implement a working and easy to use SSDP Client 1) learn a little more about SSDP
Currently, ~~documentation and~~ testing coverage is pretty lacking. This will be addressed in subsequent commits.
cargo build
cargo build --release
./target/debug/ssdp-client --help
./target/release/ssdp-client --help
./target/debug/ssdp-client --server=roku
{"server" : "roku/9.2.0 upnp/1.0 roku/9.2.0", "location: "http://192.168.1.25:8060/"}
fn print_headers(response_headers: &ResponseHeaders) {
fn determine_server(abc: &ArgMatches) -> String {
match abc.value_of("server_pattern") {
Some(server) => { return String::from(server) }
None => { return String::new() }
};
}
let resolved_server = determine_server( &args());
if response_headers.server.contains(resolved_server.as_str()) {
println!("{{\"server\" : \"{}\", \"location: \"{}\"}}", response_headers.server, response_headers.location);
exit(0);
}
}
ssdp::listen(&print_headers)