From 8c875c3bf1131e5a5107d4b4b43c4e3ebba6722c Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Wed, 13 Mar 2024 10:00:37 +0000 Subject: [PATCH] Bump version to 4.7.0 --- Cargo.lock | 10 +++++----- api/grpc-web/package.json | 2 +- api/java/build.gradle.kts | 2 +- api/js/package.json | 2 +- api/kotlin/build.gradle.kts | 2 +- api/python/src/setup.py | 2 +- api/rust/Cargo.lock | 2 +- api/rust/Cargo.toml | 2 +- api/rust/src/internal.rs | 9 ++++----- backend/Cargo.toml | 2 +- backend/src/lib.rs | 18 ++++-------------- chirpstack/Cargo.toml | 2 +- chirpstack/src/api/application.rs | 4 ++-- chirpstack/src/api/backend/mod.rs | 2 +- chirpstack/src/backend/joinserver.rs | 13 +++++++------ chirpstack/src/certificate.rs | 2 +- chirpstack/src/downlink/data.rs | 2 +- chirpstack/src/integration/loracloud/buffer.rs | 4 ++-- chirpstack/src/integration/mqtt.rs | 2 +- chirpstack/src/storage/metrics.rs | 2 +- chirpstack/src/storage/user.rs | 2 +- chirpstack/src/stream/event.rs | 2 +- chirpstack/src/stream/frame.rs | 2 +- chirpstack/src/test/class_a_pr_test.rs | 2 +- chirpstack/src/test/otaa_pr_test.rs | 6 +++--- chirpstack/src/uplink/data.rs | 10 +++++----- chirpstack/src/uplink/error.rs | 2 +- chirpstack/src/uplink/helpers.rs | 2 +- chirpstack/src/uplink/join.rs | 2 +- chirpstack/src/uplink/join_fns.rs | 2 +- chirpstack/src/uplink/join_sns.rs | 2 +- chirpstack/src/uplink/mod.rs | 4 ++-- lrwn-filters/Cargo.toml | 2 +- lrwn/Cargo.toml | 2 +- lrwn/src/aes128.rs | 2 +- lrwn/src/devaddr.rs | 2 +- lrwn/src/eui64.rs | 4 ++-- lrwn/src/maccommand.rs | 10 +++++----- lrwn/src/netid.rs | 2 +- lrwn/src/region/au915.rs | 6 +----- lrwn/src/region/us915.rs | 6 +----- lrwn/src/relay.rs | 6 +++--- ui/package.json | 2 +- 43 files changed, 75 insertions(+), 93 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3217885f..f63ad856 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -570,7 +570,7 @@ dependencies = [ [[package]] name = "backend" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "aes-kw", "anyhow", @@ -787,7 +787,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chirpstack" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "aes", "anyhow", @@ -874,7 +874,7 @@ dependencies = [ [[package]] name = "chirpstack_api" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "diesel", "hex", @@ -2434,7 +2434,7 @@ dependencies = [ [[package]] name = "lrwn" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "aes", "anyhow", @@ -2448,7 +2448,7 @@ dependencies = [ [[package]] name = "lrwn_filters" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "hex", "lrwn", diff --git a/api/grpc-web/package.json b/api/grpc-web/package.json index 0403d25c..12e7fa84 100644 --- a/api/grpc-web/package.json +++ b/api/grpc-web/package.json @@ -1,6 +1,6 @@ { "name": "@chirpstack/chirpstack-api-grpc-web", - "version": "4.7.0-test.4", + "version": "4.7.0", "description": "Chirpstack gRPC-web API", "license": "MIT", "devDependencies": { diff --git a/api/java/build.gradle.kts b/api/java/build.gradle.kts index 525fdb3d..7043d91f 100644 --- a/api/java/build.gradle.kts +++ b/api/java/build.gradle.kts @@ -8,7 +8,7 @@ plugins { } group = "io.chirpstack" -version = "4.7.0-test.4" +version = "4.7.0" repositories { mavenCentral() diff --git a/api/js/package.json b/api/js/package.json index e4cab6b3..c542403f 100644 --- a/api/js/package.json +++ b/api/js/package.json @@ -1,6 +1,6 @@ { "name": "@chirpstack/chirpstack-api", - "version": "4.7.0-test.4", + "version": "4.7.0", "description": "Chirpstack JS and TS API", "license": "MIT", "devDependencies": { diff --git a/api/kotlin/build.gradle.kts b/api/kotlin/build.gradle.kts index a2da387a..82a77a62 100644 --- a/api/kotlin/build.gradle.kts +++ b/api/kotlin/build.gradle.kts @@ -9,7 +9,7 @@ plugins { } group = "io.chirpstack" -version = "4.7.0-test.4" +version = "4.7.0" repositories { mavenCentral() diff --git a/api/python/src/setup.py b/api/python/src/setup.py index d49be938..bcd69a52 100644 --- a/api/python/src/setup.py +++ b/api/python/src/setup.py @@ -18,7 +18,7 @@ CLASSIFIERS = [ setup( name='chirpstack-api', - version = "4.7.0-test.4", + version = "4.7.0", url='https://github.com/brocaar/chirpstack-api', author='Orne Brocaar', author_email='info@brocaar.com', diff --git a/api/rust/Cargo.lock b/api/rust/Cargo.lock index d9b4b395..dc11ff78 100644 --- a/api/rust/Cargo.lock +++ b/api/rust/Cargo.lock @@ -178,7 +178,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chirpstack_api" -version = "4.7.0-test.4" +version = "4.7.0" dependencies = [ "diesel", "hex", diff --git a/api/rust/Cargo.toml b/api/rust/Cargo.toml index 62d2a62d..b11cdeea 100644 --- a/api/rust/Cargo.toml +++ b/api/rust/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "chirpstack_api" description = "ChirpStack Protobuf / gRPC API definitions." -version = "4.7.0-test.4" +version = "4.7.0" authors = ["Orne Brocaar "] license = "MIT" homepage = "https://www.chirpstack.io" diff --git a/api/rust/src/internal.rs b/api/rust/src/internal.rs index 114e5a65..9ea97098 100644 --- a/api/rust/src/internal.rs +++ b/api/rust/src/internal.rs @@ -2,13 +2,12 @@ include!(concat!(env!("OUT_DIR"), "/internal/internal.rs")); #[cfg(feature = "json")] include!(concat!(env!("OUT_DIR"), "/internal/internal.serde.rs")); -#[cfg(feature = "diesel")] -use std::io::Cursor; #[cfg(feature = "diesel")] use diesel::{backend::Backend, deserialize, serialize, sql_types::Binary}; #[cfg(feature = "diesel")] use prost::Message; - +#[cfg(feature = "diesel")] +use std::io::Cursor; impl DeviceSession { pub fn get_a_f_cnt_down(&self) -> u32 { @@ -49,10 +48,10 @@ impl serialize::ToSql for DeviceSession where [u8]: serialize::ToSql, { - fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, diesel::pg::Pg>) -> serialize::Result { + fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result { <[u8] as serialize::ToSql>::to_sql( &self.encode_to_vec(), &mut out.reborrow(), ) } -} \ No newline at end of file +} diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 0934ee25..51823159 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "backend" -version = "4.7.0-test.4" +version = "4.7.0" authors = ["Orne Brocaar "] edition = "2018" publish = false diff --git a/backend/src/lib.rs b/backend/src/lib.rs index b1a22f05..6bcbd413 100644 --- a/backend/src/lib.rs +++ b/backend/src/lib.rs @@ -423,8 +423,9 @@ impl Client { } } -#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Copy, Clone)] +#[derive(Default, Serialize, Deserialize, PartialEq, Eq, Debug, Copy, Clone)] pub enum MessageType { + #[default] JoinReq, JoinAns, RejoinReq, @@ -441,14 +442,9 @@ pub enum MessageType { XmitDataAns, } -impl Default for MessageType { - fn default() -> Self { - MessageType::JoinReq - } -} - -#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Copy, Clone)] +#[derive(Default, Serialize, Deserialize, PartialEq, Eq, Debug, Copy, Clone)] pub enum ResultCode { + #[default] Success, MICFailed, JoinReqFailed, @@ -471,12 +467,6 @@ pub enum ResultCode { Other, } -impl Default for ResultCode { - fn default() -> Self { - ResultCode::Success - } -} - #[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Copy, Clone)] pub enum RatePolicy { Drop, diff --git a/chirpstack/Cargo.toml b/chirpstack/Cargo.toml index 86bacb3c..43116f82 100644 --- a/chirpstack/Cargo.toml +++ b/chirpstack/Cargo.toml @@ -3,7 +3,7 @@ name = "chirpstack" description = "ChirpStack is an open-source LoRaWAN(TM) Network Server" repository = "https://github.com/chirpstack/chirpstack" homepage = "https://www.chirpstack.io/" -version = "4.7.0-test.4" +version = "4.7.0" authors = ["Orne Brocaar "] edition = "2021" publish = false diff --git a/chirpstack/src/api/application.rs b/chirpstack/src/api/application.rs index a6d80c80..d2a12c7c 100644 --- a/chirpstack/src/api/application.rs +++ b/chirpstack/src/api/application.rs @@ -1736,7 +1736,7 @@ impl ApplicationService for Application { application::IftttConfiguration { key: req_int.key.clone(), uplink_values: [ - req_int.uplink_values.get(0).cloned().unwrap_or_default(), + req_int.uplink_values.first().cloned().unwrap_or_default(), req_int.uplink_values.get(1).cloned().unwrap_or_default(), ], arbitrary_json: req_int.arbitrary_json, @@ -1820,7 +1820,7 @@ impl ApplicationService for Application { application::IftttConfiguration { key: req_int.key.clone(), uplink_values: [ - req_int.uplink_values.get(0).cloned().unwrap_or_default(), + req_int.uplink_values.first().cloned().unwrap_or_default(), req_int.uplink_values.get(1).cloned().unwrap_or_default(), ], arbitrary_json: req_int.arbitrary_json, diff --git a/chirpstack/src/api/backend/mod.rs b/chirpstack/src/api/backend/mod.rs index 04994579..a3ed3276 100644 --- a/chirpstack/src/api/backend/mod.rs +++ b/chirpstack/src/api/backend/mod.rs @@ -104,7 +104,7 @@ pub async fn _handle_request(bp: BasePayload, b: Vec) -> http::Response v, Err(_) => { warn!("Unknown SenderID"); diff --git a/chirpstack/src/backend/joinserver.rs b/chirpstack/src/backend/joinserver.rs index ae85ead8..a6fcb800 100644 --- a/chirpstack/src/backend/joinserver.rs +++ b/chirpstack/src/backend/joinserver.rs @@ -1,6 +1,7 @@ -use std::sync::{Arc, RwLock}; +use std::sync::Arc; use anyhow::Result; +use tokio::sync::RwLock; use tracing::info; use crate::{config, stream}; @@ -15,7 +16,7 @@ pub async fn setup() -> Result<()> { info!("Setting up Join Server clients"); let conf = config::get(); - let mut clients_w = CLIENTS.write().unwrap(); + let mut clients_w = CLIENTS.write().await; *clients_w = vec![]; for js in &conf.join_server.servers { @@ -38,8 +39,8 @@ pub async fn setup() -> Result<()> { Ok(()) } -pub fn get(join_eui: EUI64) -> Result> { - let clients_r = CLIENTS.read().unwrap(); +pub async fn get(join_eui: EUI64) -> Result> { + let clients_r = CLIENTS.read().await; for client in clients_r.iter() { if client.0.matches(join_eui) { return Ok(client.1.clone()); @@ -53,7 +54,7 @@ pub fn get(join_eui: EUI64) -> Result> { } #[cfg(test)] -pub fn reset() { - let mut clients_w = CLIENTS.write().unwrap(); +pub async fn reset() { + let mut clients_w = CLIENTS.write().await; *clients_w = vec![]; } diff --git a/chirpstack/src/certificate.rs b/chirpstack/src/certificate.rs index 6245b868..cc52a288 100644 --- a/chirpstack/src/certificate.rs +++ b/chirpstack/src/certificate.rs @@ -51,7 +51,7 @@ async fn get_ca_cert(ca_cert_file: &str, ca_key_file: &str) -> Result = uplink .rx_info .iter() - .cloned() - .filter(|rx_info| { + .filter(|&rx_info| { let ts: DateTime = match &rx_info.gw_time { None => { return false; @@ -55,6 +54,7 @@ pub async fn get_geoloc_buffer( // The interval between now and then must be smaller than the TTL (ts - Utc::now()) < ttl }) + .cloned() .collect(); if rx_info.len() > 3 { diff --git a/chirpstack/src/integration/mqtt.rs b/chirpstack/src/integration/mqtt.rs index 91bcf130..05fa9d5e 100644 --- a/chirpstack/src/integration/mqtt.rs +++ b/chirpstack/src/integration/mqtt.rs @@ -134,7 +134,7 @@ impl<'a> Integration<'a> { command: r"(?P[\w]+)".to_string(), }, )?)?, - qos: qos, + qos, json: conf.json, client, templates, diff --git a/chirpstack/src/storage/metrics.rs b/chirpstack/src/storage/metrics.rs index a185f17f..318d85ee 100644 --- a/chirpstack/src/storage/metrics.rs +++ b/chirpstack/src/storage/metrics.rs @@ -119,7 +119,7 @@ pub async fn save(name: &str, record: &Record) -> Result<()> { .unwrap(), }; - let key = get_key(&name, a, ts); + let key = get_key(name, a, ts); for (k, v) in &record.metrics { // Passing a reference to hincr will return a runtime error. diff --git a/chirpstack/src/storage/user.rs b/chirpstack/src/storage/user.rs index 8ebf52a0..bf043bdf 100644 --- a/chirpstack/src/storage/user.rs +++ b/chirpstack/src/storage/user.rs @@ -119,7 +119,7 @@ pub async fn get_by_email_and_pw(email: &str, pw: &str) -> Result { } }; - if verify_password(&pw, &u.password_hash) { + if verify_password(pw, &u.password_hash) { return Ok(u); } diff --git a/chirpstack/src/stream/event.rs b/chirpstack/src/stream/event.rs index 0d11d763..61189ac9 100644 --- a/chirpstack/src/stream/event.rs +++ b/chirpstack/src/stream/event.rs @@ -112,7 +112,7 @@ async fn handle_stream( k: &str, v: &redis::Value, ) -> Result<()> { - match k.as_ref() { + match k { "up" => { trace!(key = %k, id = %stream_id, "Event-log received from stream"); if let redis::Value::Data(b) = v { diff --git a/chirpstack/src/stream/frame.rs b/chirpstack/src/stream/frame.rs index cccd5b8b..3c55cd44 100644 --- a/chirpstack/src/stream/frame.rs +++ b/chirpstack/src/stream/frame.rs @@ -276,7 +276,7 @@ async fn handle_stream( k: &str, v: &redis::Value, ) -> Result<()> { - match k.as_ref() { + match k { "up" => { trace!(key = %k, id = %stream_id, "Frame-log received from stream"); if let redis::Value::Data(b) = v { diff --git a/chirpstack/src/test/class_a_pr_test.rs b/chirpstack/src/test/class_a_pr_test.rs index f4dcdc50..156b3413 100644 --- a/chirpstack/src/test/class_a_pr_test.rs +++ b/chirpstack/src/test/class_a_pr_test.rs @@ -167,7 +167,7 @@ async fn test_fns_uplink() { sns_pr_start_req_mock.assert(); sns_pr_start_req_mock.delete(); - joinserver::reset(); + joinserver::reset().await; } #[tokio::test] diff --git a/chirpstack/src/test/otaa_pr_test.rs b/chirpstack/src/test/otaa_pr_test.rs index bc8604fb..09e9af12 100644 --- a/chirpstack/src/test/otaa_pr_test.rs +++ b/chirpstack/src/test/otaa_pr_test.rs @@ -246,7 +246,7 @@ async fn test_fns() { })() .await; - joinserver::reset(); + joinserver::reset().await; } #[tokio::test] @@ -430,7 +430,7 @@ async fn test_sns() { pr_start_ans ); - joinserver::reset(); + joinserver::reset().await; } #[tokio::test] @@ -588,5 +588,5 @@ async fn test_sns_roaming_not_allowed() { pr_start_ans ); - joinserver::reset(); + joinserver::reset().await; } diff --git a/chirpstack/src/uplink/data.rs b/chirpstack/src/uplink/data.rs index c220925c..f265dbca 100644 --- a/chirpstack/src/uplink/data.rs +++ b/chirpstack/src/uplink/data.rs @@ -215,7 +215,7 @@ impl Data { let mac = if let lrwn::Payload::MACPayload(pl) = &self.phy_payload.payload { pl } else { - return Err(Error::AnyhowError(anyhow!("Expected MacPayload"))); + return Err(Error::Anyhow(anyhow!("Expected MacPayload"))); }; if roaming::is_roaming_dev_addr(mac.fhdr.devaddr) { @@ -234,7 +234,7 @@ impl Data { let dev_addr = if let lrwn::Payload::MACPayload(pl) = &self.phy_payload.payload { pl.fhdr.devaddr } else { - return Err(Error::AnyhowError(anyhow!("No MacPayload in PhyPayload"))); + return Err(Error::Anyhow(anyhow!("No MacPayload in PhyPayload"))); }; match device::get_for_phypayload_and_incr_f_cnt_up( @@ -277,7 +277,7 @@ impl Data { return Err(Error::Abort); } _ => { - return Err(Error::AnyhowError( + return Err(Error::Anyhow( anyhow::Error::new(e).context("Get device-session"), )); } @@ -295,7 +295,7 @@ impl Data { let dev_addr = if let lrwn::Payload::MACPayload(pl) = &self.phy_payload.payload { pl.fhdr.devaddr } else { - return Err(Error::AnyhowError(anyhow!("No MacPayload in PhyPayload"))); + return Err(Error::Anyhow(anyhow!("No MacPayload in PhyPayload"))); }; let dr = relay_ctx.req.metadata.dr; @@ -334,7 +334,7 @@ impl Data { return Err(Error::Abort); } _ => { - return Err(Error::AnyhowError( + return Err(Error::Anyhow( anyhow::Error::new(e).context("Get device-session"), )); } diff --git a/chirpstack/src/uplink/error.rs b/chirpstack/src/uplink/error.rs index 53181414..57d0b598 100644 --- a/chirpstack/src/uplink/error.rs +++ b/chirpstack/src/uplink/error.rs @@ -9,5 +9,5 @@ pub enum Error { RoamingIsNotAllowed, #[error(transparent)] - AnyhowError(#[from] anyhow::Error), + Anyhow(#[from] anyhow::Error), } diff --git a/chirpstack/src/uplink/helpers.rs b/chirpstack/src/uplink/helpers.rs index d716168e..a888f8f1 100644 --- a/chirpstack/src/uplink/helpers.rs +++ b/chirpstack/src/uplink/helpers.rs @@ -136,8 +136,8 @@ pub fn get_time_since_gps_epoch_chrono(rx_info: &[gw::UplinkRxInfo]) -> Option Option { let mut with_loc: Vec = rx_info .iter() + .filter(|&i| i.location.is_some()) .cloned() - .filter(|i| i.location.is_some()) .collect(); with_loc.sort_by(|a, b| a.snr.partial_cmp(&b.snr).unwrap()); with_loc diff --git a/chirpstack/src/uplink/join.rs b/chirpstack/src/uplink/join.rs index 31066950..4337723d 100644 --- a/chirpstack/src/uplink/join.rs +++ b/chirpstack/src/uplink/join.rs @@ -258,7 +258,7 @@ impl JoinRequest { if self.device_keys.is_none() { trace!(join_eui = %jr.join_eui, "Getting Join Server client"); - self.js_client = Some(joinserver::get(jr.join_eui)?); + self.js_client = Some(joinserver::get(jr.join_eui).await?); } Ok(()) diff --git a/chirpstack/src/uplink/join_fns.rs b/chirpstack/src/uplink/join_fns.rs index 4d361175..626cb059 100644 --- a/chirpstack/src/uplink/join_fns.rs +++ b/chirpstack/src/uplink/join_fns.rs @@ -58,7 +58,7 @@ impl JoinRequest { trace!("Getting home netid"); trace!(join_eui = %self.join_request.join_eui, "Trying to get join-server client"); - let js_client = joinserver::get(self.join_request.join_eui)?; + let js_client = joinserver::get(self.join_request.join_eui).await?; let mut home_ns_req = backend::HomeNSReqPayload { dev_eui: self.join_request.dev_eui.to_vec(), diff --git a/chirpstack/src/uplink/join_sns.rs b/chirpstack/src/uplink/join_sns.rs index 84c61b3d..99b6c901 100644 --- a/chirpstack/src/uplink/join_sns.rs +++ b/chirpstack/src/uplink/join_sns.rs @@ -162,7 +162,7 @@ impl JoinRequest { if self.device_keys.is_none() { trace!(join_eui = %jr.join_eui, "Getting Join Server client"); - self.js_client = Some(joinserver::get(jr.join_eui)?); + self.js_client = Some(joinserver::get(jr.join_eui).await?); } Ok(()) diff --git a/chirpstack/src/uplink/mod.rs b/chirpstack/src/uplink/mod.rs index 6a642058..590cabdd 100644 --- a/chirpstack/src/uplink/mod.rs +++ b/chirpstack/src/uplink/mod.rs @@ -248,7 +248,7 @@ async fn deduplicate_put( async fn deduplicate_collect(key: &str) -> Result { let items_b: Vec> = { redis::cmd("SMEMBERS") - .arg(&key) + .arg(key) .query_async(&mut get_async_redis_conn().await?) .await .context("Deduplication collect")? @@ -285,7 +285,7 @@ async fn deduplicate_collect(key: &str) -> Result { pub async fn handle_uplink(deduplication_id: Uuid, uplink: gw::UplinkFrameSet) -> Result<()> { let rx_info = &uplink .rx_info - .get(0) + .first() .context("Unable to get first item from rx_info")?; let region_config_id = rx_info diff --git a/lrwn-filters/Cargo.toml b/lrwn-filters/Cargo.toml index 89321be5..4f502efc 100644 --- a/lrwn-filters/Cargo.toml +++ b/lrwn-filters/Cargo.toml @@ -3,7 +3,7 @@ name = "lrwn_filters" description = "Library for filtering LoRaWAN payloads on DevAddr and JoinEUIs prefixes" homepage = "https://www.chirpstack.io/" license = "MIT" -version = "4.7.0-test.4" +version = "4.7.0" authors = ["Orne Brocaar "] edition = "2021" repository = "https://github.com/chirpstack/chirpstack" diff --git a/lrwn/Cargo.toml b/lrwn/Cargo.toml index 55ebc872..95b10905 100644 --- a/lrwn/Cargo.toml +++ b/lrwn/Cargo.toml @@ -3,7 +3,7 @@ name = "lrwn" description = "Library for encoding / decoding LoRaWAN frames." homepage = "https://www.chirpstack.io" license = "MIT" -version = "4.7.0-test.4" +version = "4.7.0" authors = ["Orne Brocaar "] edition = "2018" repository = "https://github.com/chirpstack/chirpstack" diff --git a/lrwn/src/aes128.rs b/lrwn/src/aes128.rs index de7718a3..f35387fd 100644 --- a/lrwn/src/aes128.rs +++ b/lrwn/src/aes128.rs @@ -130,7 +130,7 @@ impl serialize::ToSql for AES128Key where [u8]: serialize::ToSql, { - fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, diesel::pg::Pg>) -> serialize::Result { + fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result { <[u8] as serialize::ToSql>::to_sql( &self.to_bytes(), &mut out.reborrow(), diff --git a/lrwn/src/devaddr.rs b/lrwn/src/devaddr.rs index fef1e79a..c0e01e2c 100644 --- a/lrwn/src/devaddr.rs +++ b/lrwn/src/devaddr.rs @@ -273,7 +273,7 @@ impl serialize::ToSql for DevAddr where [u8]: serialize::ToSql, { - fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, diesel::pg::Pg>) -> serialize::Result { + fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result { <[u8] as serialize::ToSql>::to_sql( &self.to_be_bytes(), &mut out.reborrow(), diff --git a/lrwn/src/eui64.rs b/lrwn/src/eui64.rs index 97dde8ee..2c1972a5 100644 --- a/lrwn/src/eui64.rs +++ b/lrwn/src/eui64.rs @@ -138,7 +138,7 @@ impl serialize::ToSql for EUI64 where [u8]: serialize::ToSql, { - fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, diesel::pg::Pg>) -> serialize::Result { + fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result { <[u8] as serialize::ToSql>::to_sql( &self.to_be_bytes(), &mut out.reborrow(), @@ -197,7 +197,7 @@ impl FromStr for EUI64Prefix { fn from_str(s: &str) -> Result { let s = s.to_string(); let mut size: u64 = 64; - let parts: Vec<&str> = s.split("/").collect(); + let parts: Vec<&str> = s.split('/').collect(); if parts.len() == 2 { size = parts[1].parse().map_err(|_| Error::EUI64PrefixFormat)?; } diff --git a/lrwn/src/maccommand.rs b/lrwn/src/maccommand.rs index 75f060b0..849ae134 100644 --- a/lrwn/src/maccommand.rs +++ b/lrwn/src/maccommand.rs @@ -1891,7 +1891,7 @@ impl serialize::ToSql for RelayModeActivation where i16: serialize::ToSql, { - fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, diesel::pg::Pg>) -> serialize::Result { + fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result { let i = self.to_u8() as i16; >::to_sql(&i, &mut out.reborrow()) } @@ -2191,7 +2191,7 @@ impl PayloadCodec for UpdateUplinkListReqPayload { let mut b = [0; 26]; cur.read_exact(&mut b)?; - return Ok(UpdateUplinkListReqPayload { + Ok(UpdateUplinkListReqPayload { uplink_list_idx: b[0] & 0x0f, uplink_limit: UplinkLimitPL::from_u8(b[1]), dev_addr: crate::DevAddr::from_le_bytes({ @@ -2209,7 +2209,7 @@ impl PayloadCodec for UpdateUplinkListReqPayload { bb.copy_from_slice(&b[10..26]); bb }), - }); + }) } fn encode(&self) -> Result> { @@ -2432,7 +2432,7 @@ impl PowerLevel { pub fn from_bytes(b: [u8; 2]) -> Self { PowerLevel { wor_snr: (b[0] & 0x1f) as isize - 20, - wor_rssi: -1 * ((b[0] >> 5) | ((b[1] & 0x0f) << 3)) as isize - 15, + wor_rssi: -(((b[0] >> 5) | ((b[1] & 0x0f) << 3)) as isize) - 15, } } @@ -2456,7 +2456,7 @@ impl PowerLevel { // Encode values let wor_snr = (wor_snr + 20) as u8; - let wor_rssi = ((wor_rssi as isize + 15) * -1) as u8; + let wor_rssi = -(wor_rssi + 15) as u8; [wor_snr | wor_rssi << 5, wor_rssi >> 3] } diff --git a/lrwn/src/netid.rs b/lrwn/src/netid.rs index eaecf608..deccb272 100644 --- a/lrwn/src/netid.rs +++ b/lrwn/src/netid.rs @@ -54,7 +54,7 @@ impl NetID { match self.netid_type() { 0 | 1 => self.get_id(6), 2 => self.get_id(9), - 3 | 4 | 5 | 6 | 7 => self.get_id(21), + 3..=7 => self.get_id(21), _ => vec![], } } diff --git a/lrwn/src/region/au915.rs b/lrwn/src/region/au915.rs index 71e8820b..0b2aaeeb 100644 --- a/lrwn/src/region/au915.rs +++ b/lrwn/src/region/au915.rs @@ -1176,11 +1176,7 @@ impl Region for Configuration { for pl in pls { if pl.redundancy.ch_mask_cntl == 6 || pl.redundancy.ch_mask_cntl == 7 { for cm in ch_mask.iter_mut().take(64) { - if pl.redundancy.ch_mask_cntl == 6 { - *cm = true; - } else { - *cm = false; - } + *cm = pl.redundancy.ch_mask_cntl == 6; } for (i, cm) in pl.ch_mask.into_iter().enumerate() { diff --git a/lrwn/src/region/us915.rs b/lrwn/src/region/us915.rs index 14b74a9f..afcf1419 100644 --- a/lrwn/src/region/us915.rs +++ b/lrwn/src/region/us915.rs @@ -864,11 +864,7 @@ impl Region for Configuration { for pl in pls { if pl.redundancy.ch_mask_cntl == 6 || pl.redundancy.ch_mask_cntl == 7 { for cm in ch_mask.iter_mut().take(64) { - if pl.redundancy.ch_mask_cntl == 6 { - *cm = true; - } else { - *cm = false; - } + *cm = pl.redundancy.ch_mask_cntl == 6; } for (i, cm) in pl.ch_mask.into_iter().enumerate() { diff --git a/lrwn/src/relay.rs b/lrwn/src/relay.rs index e2fc497d..d86a82eb 100644 --- a/lrwn/src/relay.rs +++ b/lrwn/src/relay.rs @@ -19,7 +19,7 @@ impl UplinkMetadata { UplinkMetadata { dr: b[0] & 0x0f, snr: ((b[0] >> 4) | ((b[1] & 0x01) << 4)) as isize - 20, - rssi: -1 * (b[1] >> 1) as isize - 15, + rssi: -((b[1] >> 1) as isize) - 15, wor_channel: b[2] & 0x03, } } @@ -52,7 +52,7 @@ impl UplinkMetadata { // Encode values let snr = (snr + 20) as u8; - let rssi = ((rssi as isize + 15) * -1) as u8; + let rssi = -(rssi + 15) as u8; Ok([self.dr | snr << 4, snr >> 4 | rssi << 1, self.wor_channel]) } @@ -97,7 +97,7 @@ pub struct ForwardDownlinkReq { impl ForwardDownlinkReq { pub fn from_slice(b: &[u8]) -> Result { Ok(ForwardDownlinkReq { - payload: Box::new(PhyPayload::from_slice(&b)?), + payload: Box::new(PhyPayload::from_slice(b)?), }) } diff --git a/ui/package.json b/ui/package.json index 4ae70cbd..7af8db69 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "chirpstack-ui", - "version": "4.7.0-test.4", + "version": "4.7.0", "private": true, "dependencies": { "@ant-design/colors": "^7.0.0",