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

Function get

chirpstack/src/backend/roaming.rs:73–121  ·  view source on GitHub ↗
(net_id: &NetID)

Source from the content-addressed store, hash-verified

71}
72
73pub async fn get(net_id: &NetID) -> Result<Arc<Client>> {
74 let mut clients_w = CLIENTS.write().await;
75
76 if let Some(client) = clients_w.get(net_id) {
77 return Ok(client.clone());
78 }
79
80 let conf = config::get();
81 if conf.roaming.default.enabled {
82 debug!(net_id = %net_id, "Configuring default roaming client");
83
84 let server = if conf.roaming.default.server.is_empty() {
85 format!(
86 "https://{}{}",
87 net_id, conf.roaming.resolve_net_id_domain_suffix,
88 )
89 } else {
90 conf.roaming.default.server.clone()
91 };
92
93 let c = Client::new(ClientConfig {
94 sender_id: conf.network.net_id.to_vec(),
95 receiver_id: net_id.to_vec(),
96 server,
97 use_target_role_suffix: conf.roaming.default.use_target_role_suffix,
98 ca_cert: conf.roaming.default.ca_cert.clone(),
99 tls_cert: conf.roaming.default.tls_cert.clone(),
100 tls_key: conf.roaming.default.tls_key.clone(),
101 authorization: if conf.roaming.default.authorization_header.is_empty() {
102 None
103 } else {
104 Some(conf.roaming.default.authorization_header.clone())
105 },
106 async_timeout: conf.roaming.default.async_timeout,
107 request_log_sender: stream::backend_interfaces::get_log_sender().await,
108 })?;
109
110 let c = Arc::new(c);
111 let c_out = c.clone();
112 clients_w.insert(*net_id, c);
113
114 return Ok(c_out);
115 }
116
117 Err(anyhow!(
118 "Roaming client for net_id {} does not exist",
119 net_id
120 ))
121}
122
123pub fn get_passive_roaming_lifetime(net_id: NetID) -> Result<std::time::Duration> {
124 let conf = config::get();

Callers 10

unwrapFunction · 0.70
wrapFunction · 0.70
setupFunction · 0.70
is_enabledFunction · 0.70
is_roaming_dev_addrFunction · 0.70
get_net_ids_for_dev_addrFunction · 0.70
ul_meta_data_to_tx_infoFunction · 0.70

Calls 4

get_log_senderFunction · 0.85
insertMethod · 0.80
getMethod · 0.45
to_vecMethod · 0.45

Tested by

no test coverage detected