Skip to content

Commit 9c889f7

Browse files
Added additional firmware site checks
1 parent 6d1686d commit 9c889f7

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

daemon/src/primary_worker.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use goxlr_usb::device::{find_devices, from_device, get_version};
2222
use goxlr_usb::{PID_GOXLR_FULL, PID_GOXLR_MINI};
2323
use json_patch::diff;
2424
use log::{debug, error, info, warn};
25-
use reqwest::ClientBuilder;
25+
use reqwest::{ClientBuilder, StatusCode};
2626
use std::collections::{BTreeMap, HashMap};
2727
use std::env;
2828
use std::path::PathBuf;
@@ -941,6 +941,10 @@ async fn check_firmware_versions(x: FwSender, source: FirmwareSource) {
941941
let client = if let Ok(client) = ClientBuilder::new()
942942
.connect_timeout(Duration::from_secs(2))
943943
.timeout(Duration::from_secs(5))
944+
.tcp_keepalive(Duration::from_secs(30))
945+
.tcp_nodelay(true)
946+
.pool_idle_timeout(Duration::from_secs(30))
947+
.pool_max_idle_per_host(1)
944948
.build()
945949
{
946950
client
@@ -953,6 +957,15 @@ async fn check_firmware_versions(x: FwSender, source: FirmwareSource) {
953957
debug!("Performing Firmware Version Check..");
954958
let url = format!("{}{}", FIRMWARE_PATHS[source], "UpdateManifest_v3.xml");
955959
if let Ok(response) = client.get(url).send().await {
960+
if response.status() != StatusCode::OK {
961+
warn!(
962+
"Firmware Version Check Failed, Invalid Response Code: {}",
963+
response.status()
964+
);
965+
let _ = x.send(map).await;
966+
return;
967+
}
968+
956969
if let Ok(text) = response.text().await {
957970
// Parse this into an XML tree...
958971
if let Ok(root) = Element::parse(text.as_bytes()) {
@@ -966,6 +979,8 @@ async fn check_firmware_versions(x: FwSender, source: FirmwareSource) {
966979
version: VersionNumber::from(root.attributes[mini_key].clone()),
967980
change_log,
968981
});
982+
} else {
983+
warn!("{mini_key} node not found in result");
969984
}
970985

971986
// We can probably abstract this slightly, the mini and full behaviours are the same.
@@ -979,6 +994,8 @@ async fn check_firmware_versions(x: FwSender, source: FirmwareSource) {
979994
version: VersionNumber::from(root.attributes[full_key].clone()),
980995
change_log,
981996
});
997+
} else {
998+
warn!("{full_key} node not found in result");
982999
}
9831000
} else {
9841001
warn!("Unable to Parse the XML Response from the TC-Helicon Update Server");
@@ -990,5 +1007,6 @@ async fn check_firmware_versions(x: FwSender, source: FirmwareSource) {
9901007
warn!("Unable to connect to the TC-Helicon Update Server");
9911008
}
9921009

1010+
debug!("Firmware Update Process Finished");
9931011
let _ = x.send(map).await;
9941012
}

0 commit comments

Comments
 (0)