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

Function setup

chirpstack/src/backend/roaming.rs:21–66  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

19 LazyLock::new(|| RwLock::new(HashMap::new()));
20
21pub async fn setup() -> Result<()> {
22 info!("Setting up roaming clients");
23 let conf = config::get();
24
25 for s in &conf.roaming.servers {
26 let span = span!(Level::INFO, "setup", net_id = %s.net_id);
27 let _guard = span.enter();
28
29 let server = if s.server.is_empty() {
30 format!(
31 "https://{}{}",
32 s.net_id, conf.roaming.resolve_net_id_domain_suffix,
33 )
34 } else {
35 s.server.clone()
36 };
37
38 info!(
39 passive_roaming_lifetime = ?s.passive_roaming_lifetime,
40 server = %server,
41 async_timeout = ?s.async_timeout,
42 "Configuring roaming client"
43 );
44
45 let c = Client::new(ClientConfig {
46 sender_id: conf.network.net_id.to_vec(),
47 receiver_id: s.net_id.to_vec(),
48 server,
49 use_target_role_suffix: s.use_target_role_suffix,
50 ca_cert: s.ca_cert.clone(),
51 tls_cert: s.tls_cert.clone(),
52 tls_key: s.tls_key.clone(),
53 authorization: if s.authorization_header.is_empty() {
54 None
55 } else {
56 Some(s.authorization_header.clone())
57 },
58 async_timeout: s.async_timeout,
59 request_log_sender: stream::backend_interfaces::get_log_sender().await,
60 })?;
61
62 set(&s.net_id, c).await;
63 }
64
65 Ok(())
66}
67
68pub async fn set(net_id: &NetID, c: Client) {
69 let mut clients_w = CLIENTS.write().await;

Callers

nothing calls this directly

Calls 4

get_log_senderFunction · 0.85
getFunction · 0.70
setFunction · 0.70
to_vecMethod · 0.45

Tested by

no test coverage detected