aboutsummaryrefslogtreecommitdiff
path: root/src/routes/start.rs
diff options
context:
space:
mode:
authorFxQnLr <[email protected]>2024-04-15 21:12:04 +0200
committerGitHub <[email protected]>2024-04-15 21:12:04 +0200
commitea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145 (patch)
treed89f0da1841b984c10a6a24997a8733524b75f75 /src/routes/start.rs
parentb615f6e34e084d520dcc301058b5926074188500 (diff)
parent7876dd605a8e4b595436035a87a5151be187c01d (diff)
downloadwebol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.tar
webol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.tar.gz
webol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.zip
Merge pull request #36 from FxQnLr/optional_ip
Optional ip and better docs
Diffstat (limited to 'src/routes/start.rs')
-rw-r--r--src/routes/start.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/routes/start.rs b/src/routes/start.rs
index bbc6ab8..192a54a 100644
--- a/src/routes/start.rs
+++ b/src/routes/start.rs
@@ -69,6 +69,9 @@ fn send_wol(
69 let dev_id = device.id.clone(); 69 let dev_id = device.id.clone();
70 let uuid = if let Some(pl) = payload { 70 let uuid = if let Some(pl) = payload {
71 if pl.ping.is_some_and(|ping| ping) { 71 if pl.ping.is_some_and(|ping| ping) {
72 if device.ip.is_none() {
73 return Err(Error::NoIpOnPing);
74 }
72 Some(setup_ping(state, device)) 75 Some(setup_ping(state, device))
73 } else { 76 } else {
74 None 77 None
@@ -86,8 +89,10 @@ fn send_wol(
86 89
87fn setup_ping(state: Arc<crate::AppState>, device: Device) -> String { 90fn setup_ping(state: Arc<crate::AppState>, device: Device) -> String {
88 let mut uuid: Option<String> = None; 91 let mut uuid: Option<String> = None;
92 // Safe: Only called when ip is set
93 let ip = device.ip.unwrap();
89 for (key, value) in state.ping_map.clone() { 94 for (key, value) in state.ping_map.clone() {
90 if value.ip == device.ip { 95 if value.ip == ip {
91 debug!("service already exists"); 96 debug!("service already exists");
92 uuid = Some(key); 97 uuid = Some(key);
93 break; 98 break;
@@ -103,7 +108,7 @@ fn setup_ping(state: Arc<crate::AppState>, device: Device) -> String {
103 state.ping_map.insert( 108 state.ping_map.insert(
104 uuid_gen.clone(), 109 uuid_gen.clone(),
105 PingValue { 110 PingValue {
106 ip: device.ip, 111 ip,
107 eta: get_eta(device.clone().times), 112 eta: get_eta(device.clone().times),
108 online: false, 113 online: false,
109 }, 114 },