use crate::service::ServiceDescription;
use crate::MulticastAddr;
use crate::SSDP_PORT;
#[allow(dead_code)]
pub(crate) fn generate_ssdp_alive(
service_description: &ServiceDescription,
ssdp_multicast_addr: &MulticastAddr,
) -> String {
format!(
"NOTIFY * HTTP/1.1\r\nHost: {}:{}\r\nNT: {}\r\nNTS: ssdp:alive\r\nUSN: {}\r\nAL: <{}><{}>\r\nCache-Control: max-age = {}\r\n\r\n",
ssdp_multicast_addr.get_ip(),
SSDP_PORT,
service_description.service_type_uri,
service_description.usn_uri,
service_description.usn_uri,
service_description.location,
service_description.expiration,
)
}
#[allow(dead_code)]
pub(crate) fn generate_ssdp_byebye(
service_description: &ServiceDescription,
ssdp_multicast_addr: &MulticastAddr,
) -> String {
format!(
"NOTIFY * HTTP/1.1\r\nHost: {}:{}\r\nNT: {}\r\nNTS: ssdp:byebye\r\nUSN: {}\r\n\r\n",
ssdp_multicast_addr.get_ip(),
SSDP_PORT,
service_description.service_type_uri,
service_description.usn_uri,
)
}
pub(crate) fn generate_ssdp_discover_answer(
service_description: &ServiceDescription,
s: String
) -> String {
format!(
"HTTP/1.1 200 OK\r\nS: {}\r\nExt: \r\nCache-Control: no-cache=\"Ext\", max-age={}\r\nST: {}\r\nUSN: {}\r\nAL: <{}><{}>\r\n\r\n",
s,
service_description.expiration,
service_description.service_type_uri,
service_description.usn_uri,
service_description.service_type_uri,
service_description.location,
)
}
pub(crate) fn generate_ssdp_discover(
s: String,
st: String,
ssdp_multicast_addr: &MulticastAddr,
) -> String {
format!(
"M-SEARCH * HTTP/1.1\r\nS: {}\r\nHost: {}:{}\r\nMAN: \"ssdp:discover\"\r\nST: {}\r\nMX: {}\r\n\r\n",
s,
ssdp_multicast_addr.get_ip(),
SSDP_PORT,
st,
1,
)
}