MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / send_join_event

Method send_join_event

chirpstack/src/uplink/join.rs:932–972  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

930 }
931
932 async fn send_join_event(&self) -> Result<()> {
933 trace!("Sending join event");
934
935 let ts: DateTime<Utc> =
936 helpers::get_rx_timestamp(&self.uplink_frame_set.rx_info_set).into();
937
938 let app = self.application.as_ref().unwrap();
939 let dev = self.device.as_ref().unwrap();
940
941 let pl = integration_pb::JoinEvent {
942 deduplication_id: self.uplink_frame_set.uplink_set_id.to_string(),
943 time: Some(ts.into()),
944 device_info: self.device_info.clone(),
945 relay_rx_info: self.relay_rx_info.clone(),
946 dev_addr: dev.dev_addr.unwrap().to_string(),
947 join_server_context: if !self.js_session_key_id.is_empty() {
948 Some(common::JoinServerContext {
949 app_s_key: None,
950 session_key_id: hex::encode(&self.js_session_key_id),
951 })
952 } else if let Some(app_s_key) = &self.app_s_key {
953 if app_s_key.kek_label.is_empty() {
954 None
955 } else {
956 Some(common::JoinServerContext {
957 app_s_key: Some(common::KeyEnvelope {
958 kek_label: app_s_key.kek_label.clone(),
959 aes_key: app_s_key.aes_key.clone(),
960 }),
961 session_key_id: "".into(),
962 })
963 }
964 } else {
965 None
966 },
967 region_config_id: self.uplink_frame_set.region_config_id.clone(),
968 };
969
970 integration::join_event(app.id.into(), &dev.variables, &pl).await;
971 Ok(())
972 }
973}

Callers 2

_handleMethod · 0.45
_handle_relayedMethod · 0.45

Calls 7

get_rx_timestampFunction · 0.85
unwrapMethod · 0.80
as_refMethod · 0.80
to_stringMethod · 0.80
encodeFunction · 0.50
join_eventFunction · 0.50
intoMethod · 0.45

Tested by

no test coverage detected