Skip to content

Commit 48036df

Browse files
committed
chore: fix clippy warnings and rustfmt in port-forward and vmm
1 parent b2b1fa3 commit 48036df

5 files changed

Lines changed: 70 additions & 66 deletions

File tree

port-forward/src/lib.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,17 @@ impl ForwardService {
7474
Protocol::Udp => tokio::spawn(udp::run_udp_forwarder(listen, target, token.clone())),
7575
};
7676

77-
tracing::info!("added forwarding rule: {listen} -> {target} ({:?})", rule.protocol);
78-
self.rules.insert(rule, RunningRule { cancel: token, task });
77+
tracing::info!(
78+
"added forwarding rule: {listen} -> {target} ({:?})",
79+
rule.protocol
80+
);
81+
self.rules.insert(
82+
rule,
83+
RunningRule {
84+
cancel: token,
85+
task,
86+
},
87+
);
7988
Ok(())
8089
}
8190

port-forward/src/tcp.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,7 @@ async fn splice_one_direction(
109109
use nix::fcntl::{splice, SpliceFFlags};
110110
use nix::unistd::pipe;
111111

112-
let (pipe_r, pipe_w): (OwnedFd, OwnedFd) =
113-
pipe().map_err(|e| io::Error::new(io::ErrorKind::Other, e))?;
112+
let (pipe_r, pipe_w): (OwnedFd, OwnedFd) = pipe().map_err(io::Error::other)?;
114113

115114
let flags = SpliceFFlags::SPLICE_F_NONBLOCK | SpliceFFlags::SPLICE_F_MOVE;
116115
let chunk: usize = 65536;
@@ -129,7 +128,7 @@ async fn splice_one_direction(
129128
io::ErrorKind::Unsupported,
130129
"splice not supported for this fd type",
131130
)),
132-
Err(e) => Err(io::Error::new(io::ErrorKind::Other, e)),
131+
Err(e) => Err(io::Error::other(e)),
133132
}
134133
}) {
135134
Ok(0) => return Ok(()),
@@ -145,7 +144,7 @@ async fn splice_one_direction(
145144
match splice(pipe_r.as_fd(), None, dst_bfd, None, n - written, flags) {
146145
Ok(w) => Ok(w),
147146
Err(nix::errno::Errno::EAGAIN) => Err(io::ErrorKind::WouldBlock.into()),
148-
Err(e) => Err(io::Error::new(io::ErrorKind::Other, e)),
147+
Err(e) => Err(io::Error::other(e)),
149148
}
150149
}) {
151150
Ok(w) => written += w,
@@ -197,13 +196,10 @@ mod tests {
197196
conn.write_all(b"hello splice").await.unwrap();
198197

199198
let mut buf = vec![0u8; 64];
200-
let n = tokio::time::timeout(
201-
std::time::Duration::from_secs(2),
202-
conn.read(&mut buf),
203-
)
204-
.await
205-
.unwrap()
206-
.unwrap();
199+
let n = tokio::time::timeout(std::time::Duration::from_secs(2), conn.read(&mut buf))
200+
.await
201+
.unwrap()
202+
.unwrap();
207203
assert_eq!(&buf[..n], b"hello splice");
208204

209205
cancel.cancel();

port-forward/src/udp.rs

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -83,34 +83,34 @@ pub async fn run_udp_forwarder(
8383
let mut map = clients.lock().await;
8484

8585
// Get or create per-client ephemeral socket
86-
if !map.contains_key(&client_addr) {
87-
let std_sock = match std::net::UdpSocket::bind("0.0.0.0:0") {
88-
Ok(s) => s,
89-
Err(e) => {
90-
tracing::warn!("udp ephemeral bind for {client_addr}: {e}");
91-
continue;
92-
}
93-
};
94-
std_sock.set_nonblocking(true).unwrap();
95-
let socket = Arc::new(UdpSocket::from_std(std_sock).unwrap());
96-
97-
let return_cancel = cancel.child_token();
98-
// Spawn return-path task
99-
tokio::spawn(udp_return_path(
100-
host_socket.clone(),
101-
socket.clone(),
102-
client_addr,
103-
return_cancel.child_token(),
104-
));
105-
106-
map.insert(client_addr, ClientState {
107-
socket,
108-
last_active: Instant::now(),
109-
_cancel: return_cancel,
110-
});
111-
}
112-
113-
let entry = map.get_mut(&client_addr).unwrap();
86+
let entry = match map.entry(client_addr) {
87+
std::collections::hash_map::Entry::Occupied(e) => e.into_mut(),
88+
std::collections::hash_map::Entry::Vacant(e) => {
89+
let std_sock = match std::net::UdpSocket::bind("0.0.0.0:0") {
90+
Ok(s) => s,
91+
Err(e) => {
92+
tracing::warn!("udp ephemeral bind for {client_addr}: {e}");
93+
continue;
94+
}
95+
};
96+
std_sock.set_nonblocking(true).unwrap();
97+
let socket = Arc::new(UdpSocket::from_std(std_sock).unwrap());
98+
99+
let return_cancel = cancel.child_token();
100+
tokio::spawn(udp_return_path(
101+
host_socket.clone(),
102+
socket.clone(),
103+
client_addr,
104+
return_cancel.child_token(),
105+
));
106+
107+
e.insert(ClientState {
108+
socket,
109+
last_active: Instant::now(),
110+
_cancel: return_cancel,
111+
})
112+
}
113+
};
114114
entry.last_active = Instant::now();
115115

116116
// Forward client data to target
@@ -164,7 +164,9 @@ mod tests {
164164
let mut buf = vec![0u8; UDP_BUF_SIZE];
165165
loop {
166166
match echo.recv_from(&mut buf).await {
167-
Ok((n, from)) => { let _ = echo.send_to(&buf[..n], from).await; }
167+
Ok((n, from)) => {
168+
let _ = echo.send_to(&buf[..n], from).await;
169+
}
168170
Err(_) => break,
169171
}
170172
}
@@ -186,10 +188,10 @@ mod tests {
186188
client.send_to(b"hello udp", fwd_addr).await.unwrap();
187189

188190
let mut buf = vec![0u8; 64];
189-
let (n, _) = tokio::time::timeout(
190-
Duration::from_secs(2),
191-
client.recv_from(&mut buf),
192-
).await.unwrap().unwrap();
191+
let (n, _) = tokio::time::timeout(Duration::from_secs(2), client.recv_from(&mut buf))
192+
.await
193+
.unwrap()
194+
.unwrap();
193195
assert_eq!(&buf[..n], b"hello udp");
194196

195197
cancel.cancel();

vmm/src/app.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,10 @@ impl App {
319319
let vm_id = {
320320
let mut state = self.lock();
321321
let prefix = self.config.cvm.networking.mac_prefix_bytes();
322-
let found = state.vms.iter_mut().find(|(id, _)| {
323-
mac_address_for_vm(id, &prefix) == mac
324-
});
322+
let found = state
323+
.vms
324+
.iter_mut()
325+
.find(|(id, _)| mac_address_for_vm(id, &prefix) == mac);
325326
let Some((id, vm)) = found else {
326327
debug!(mac, ip, "DHCP lease for unknown MAC, ignoring");
327328
return;
@@ -386,7 +387,12 @@ impl App {
386387
})
387388
.collect();
388389

389-
let old_rules = self.lock().active_forwards.get(id).cloned().unwrap_or_default();
390+
let old_rules = self
391+
.lock()
392+
.active_forwards
393+
.get(id)
394+
.cloned()
395+
.unwrap_or_default();
390396

391397
let old_set: HashSet<_> = old_rules.iter().collect();
392398
let new_set: HashSet<_> = new_rules.iter().collect();
@@ -408,7 +414,9 @@ impl App {
408414
}
409415

410416
drop(fwd);
411-
self.lock().active_forwards.insert(id.to_string(), new_rules);
417+
self.lock()
418+
.active_forwards
419+
.insert(id.to_string(), new_rules);
412420
info!(id, "port forwarding reconfigured");
413421
}
414422

vmm/src/app/qemu.rs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
//! QEMU related code
66
use crate::{
77
app::Manifest,
8-
config::{
9-
CvmConfig, GatewayConfig, Networking, NetworkingMode, ProcessAnnotation, Protocol,
10-
},
8+
config::{CvmConfig, GatewayConfig, Networking, NetworkingMode, ProcessAnnotation, Protocol},
119
};
1210
use std::{collections::HashMap, os::unix::fs::PermissionsExt};
1311
use std::{
@@ -68,9 +66,7 @@ fn networking_to_proto(n: &Networking) -> pb::NetworkingConfig {
6866
NetworkingMode::Passt => "passt",
6967
NetworkingMode::Custom => "custom",
7068
};
71-
pb::NetworkingConfig {
72-
mode: mode.into(),
73-
}
69+
pb::NetworkingConfig { mode: mode.into() }
7470
}
7571

7672
#[derive(Debug, Deserialize)]
@@ -270,9 +266,7 @@ impl VmInfo {
270266
gateway_urls: custom_gateway_urls.clone(),
271267
stopped,
272268
no_tee,
273-
networking: self.manifest.networking.as_ref().map(|n| {
274-
networking_to_proto(n)
275-
}),
269+
networking: self.manifest.networking.as_ref().map(networking_to_proto),
276270
})
277271
},
278272
app_url: self
@@ -609,10 +603,7 @@ impl VmConfig {
609603
)
610604
}
611605
NetworkingMode::Bridge => {
612-
tracing::info!(
613-
"bridge networking: mac={mac} bridge={}",
614-
networking.bridge
615-
);
606+
tracing::info!("bridge networking: mac={mac} bridge={}", networking.bridge);
616607
format!("bridge,id=net0,br={}", networking.bridge)
617608
}
618609
NetworkingMode::Custom => networking.netdev.clone(),
@@ -1208,7 +1199,6 @@ impl VmWorkDir {
12081199
self.workdir.join("passt.log")
12091200
}
12101201

1211-
12121202
pub fn path(&self) -> &Path {
12131203
&self.workdir
12141204
}
@@ -1226,5 +1216,4 @@ impl VmWorkDir {
12261216
let compose: AppCompose = serde_json::from_str(&fs::read_to_string(compose_file)?)?;
12271217
Ok(compose)
12281218
}
1229-
12301219
}

0 commit comments

Comments
 (0)