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

Method send_join_event

chirpstack/src/uplink/join_sns.rs:675–715  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

673 }
674
675 async fn send_join_event(&self) -> Result<()> {
676 trace!("Sending join event");
677
678 let ts: DateTime<Utc> =
679 helpers::get_rx_timestamp(&self.uplink_frame_set.rx_info_set).into();
680
681 let app = self.application.as_ref().unwrap();
682 let dev = self.device.as_ref().unwrap();
683
684 let pl = integration_pb::JoinEvent {
685 deduplication_id: self.uplink_frame_set.uplink_set_id.to_string(),
686 time: Some(ts.into()),
687 device_info: self.device_info.clone(),
688 relay_rx_info: None,
689 dev_addr: self.dev_addr.as_ref().unwrap().to_string(),
690 join_server_context: if !self.js_session_key_id.is_empty() {
691 Some(common::JoinServerContext {
692 app_s_key: None,
693 session_key_id: self.js_session_key_id.clone(),
694 })
695 } else if let Some(app_s_key) = &self.app_s_key {
696 if app_s_key.kek_label.is_empty() {
697 None
698 } else {
699 Some(common::JoinServerContext {
700 app_s_key: Some(common::KeyEnvelope {
701 kek_label: app_s_key.kek_label.clone(),
702 aes_key: app_s_key.aes_key.clone(),
703 }),
704 session_key_id: "".to_string(),
705 })
706 }
707 } else {
708 None
709 },
710 region_config_id: self.uplink_frame_set.region_config_id.clone(),
711 };
712
713 integration::join_event(app.id.into(), &dev.variables, &pl).await;
714 Ok(())
715 }
716
717 fn set_pr_start_ans_payload(&mut self) -> Result<()> {
718 trace!("Setting PRStartAnsPayload");

Callers 1

_start_prMethod · 0.45

Calls 6

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

Tested by

no test coverage detected