use mqtt_protocol_core::mqtt;
#[cfg(feature = "std")]
use std::sync::Once;
#[cfg(feature = "std")]
static INIT: Once = Once::new();
#[cfg(feature = "std")]
fn auto_init_tracing() {
INIT.call_once(|| {
let filter = if let Ok(rust_log) = std::env::var("RUST_LOG") {
tracing_subscriber::EnvFilter::new(rust_log)
} else {
let level = std::env::var("MQTT_LOG_LEVEL").unwrap_or_else(|_| "warn".to_string());
tracing_subscriber::EnvFilter::new(format!("mqtt_protocol_core={level}"))
};
tracing_subscriber::fmt()
.with_env_filter(filter)
.with_target(true)
.with_test_writer()
.init();
});
}
#[cfg(not(feature = "std"))]
fn auto_init_tracing() {
}
pub fn init_tracing() {
auto_init_tracing();
}
#[allow(dead_code)]
pub fn v3_1_1_client_connecting(
con: &mut mqtt::Connection<mqtt::role::Client>,
clean_session: bool,
) {
let packet = mqtt::packet::v3_1_1::Connect::builder()
.client_id("cid1")
.unwrap()
.clean_session(clean_session)
.build()
.expect("Failed to build Connect packet");
let _ = con.checked_send(packet);
}
#[allow(dead_code)]
pub fn v3_1_1_client_establish_connection(
con: &mut mqtt::Connection<mqtt::role::Client>,
clean_session: bool,
session_present: bool,
) {
v3_1_1_client_connecting(con, clean_session);
let packet = mqtt::packet::v3_1_1::Connack::builder()
.session_present(session_present)
.return_code(mqtt::result_code::ConnectReturnCode::Accepted)
.build()
.expect("Failed to build Connack packet");
let flattened: Vec<u8> = packet.to_continuous_buffer();
let mut cursor = mqtt::common::Cursor::new(&flattened[..]);
let _ = con.recv(&mut cursor);
}
#[allow(dead_code)]
pub fn v3_1_1_server_connecting(
con: &mut mqtt::Connection<mqtt::role::Server>,
clean_session: bool,
) {
let packet = mqtt::packet::v3_1_1::Connect::builder()
.client_id("cid1")
.unwrap()
.clean_session(clean_session)
.build()
.expect("Failed to build Connect packet");
let flattened: Vec<u8> = packet.to_continuous_buffer();
let mut cursor = mqtt::common::Cursor::new(&flattened[..]);
let _ = con.recv(&mut cursor);
}
#[allow(dead_code)]
pub fn v3_1_1_server_establish_connection(
con: &mut mqtt::Connection<mqtt::role::Server>,
clean_session: bool,
session_present: bool,
) {
v3_1_1_server_connecting(con, clean_session);
{
let packet = mqtt::packet::v3_1_1::Connack::builder()
.session_present(session_present)
.return_code(mqtt::result_code::ConnectReturnCode::Accepted)
.build()
.expect("Failed to build Connack packet");
let _ = con.checked_send(packet);
}
}
#[allow(dead_code)]
pub fn v5_0_client_establish_connection(con: &mut mqtt::Connection<mqtt::role::Client>) {
{
let packet = mqtt::packet::v5_0::Connect::builder()
.client_id("cid1")
.unwrap()
.build()
.expect("Failed to build Connect packet");
let _ = con.checked_send(packet);
}
{
let packet = mqtt::packet::v5_0::Connack::builder()
.session_present(false)
.reason_code(mqtt::result_code::ConnectReasonCode::Success)
.build()
.expect("Failed to build Connack packet");
let flattened: Vec<u8> = packet.to_continuous_buffer();
let mut cursor = mqtt::common::Cursor::new(&flattened[..]);
let _ = con.recv(&mut cursor);
}
}
#[allow(dead_code)]
pub fn v5_0_server_connecting(con: &mut mqtt::Connection<mqtt::role::Server>) {
let packet = mqtt::packet::v5_0::Connect::builder()
.client_id("cid1")
.unwrap()
.build()
.expect("Failed to build Connect packet");
let flattened: Vec<u8> = packet.to_continuous_buffer();
let mut cursor = mqtt::common::Cursor::new(&flattened[..]);
let _ = con.recv(&mut cursor);
}
#[allow(dead_code)]
pub fn v5_0_server_establish_connection(con: &mut mqtt::Connection<mqtt::role::Server>) {
v5_0_server_connecting(con);
{
let packet = mqtt::packet::v5_0::Connack::builder()
.session_present(false)
.reason_code(mqtt::result_code::ConnectReasonCode::Success)
.build()
.expect("Failed to build Connack packet");
let _ = con.checked_send(packet);
}
}