summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-08-07 11:32:05 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-08-07 14:19:43 +0200
commit0cb117df776a5742b9fc76b8fdbda919b7ad0310 (patch)
tree21870ddf0312fd8d3cfa34e570b1418dd6e2c3b7
parent676f8fc078d5bb1c7fe272e88fcd1345257d0267 (diff)
downloadmullvadvpn-0cb117df776a5742b9fc76b8fdbda919b7ad0310.tar.xz
mullvadvpn-0cb117df776a5742b9fc76b8fdbda919b7ad0310.zip
Log dnsmasq output after initial setup
-rw-r--r--test/test-manager/src/vm/network/linux.rs21
1 files changed, 16 insertions, 5 deletions
diff --git a/test/test-manager/src/vm/network/linux.rs b/test/test-manager/src/vm/network/linux.rs
index 901fd1073d..1a4e994a52 100644
--- a/test/test-manager/src/vm/network/linux.rs
+++ b/test/test-manager/src/vm/network/linux.rs
@@ -145,7 +145,8 @@ table ip mullvad_test_nat {{
impl NetworkHandle {
/// Return the first IP address acknowledged by the DHCP server. This can only be called once.
pub async fn first_dhcp_ack(&mut self) -> Option<IpAddr> {
- const LOG_PREFIX: &str = "[dnsmasq] ";
+ const LOG_PREFIX_STDOUT: &str = "[dnsmasq] [stdout] ";
+ const LOG_PREFIX_STDERR: &str = "[dnsmasq] [stderr] ";
const LOG_LEVEL: log::Level = log::Level::Debug;
// dnsmasq-dhcp: DHCPACK(br-mullvadtest) 172.29.1.112 52:54:00:12:34:56 debian
@@ -156,8 +157,10 @@ impl NetworkHandle {
let reader = BufReader::new(stderr?);
let mut lines = reader.lines();
+ let mut found_addr = None;
+
while let Ok(Some(line)) = lines.next_line().await {
- log::log!(LOG_LEVEL, "{LOG_PREFIX}{}", line);
+ log::log!(LOG_LEVEL, "{LOG_PREFIX_STDERR}{}", line);
if let Some(addr) = re
.captures(&line)
@@ -166,18 +169,26 @@ impl NetworkHandle {
{
if let Ok(parsed_addr) = IpAddr::from_str(addr) {
log::debug!("Captured DHCPACK: {}", parsed_addr);
- return Some(parsed_addr);
+ found_addr = Some(parsed_addr);
+ break;
}
}
}
+ if let Some(stdout) = self.dhcp_proc.child.stdout.take() {
+ tokio::spawn(crate::vm::logging::forward_logs(
+ LOG_PREFIX_STDOUT,
+ stdout,
+ LOG_LEVEL,
+ ));
+ }
tokio::spawn(crate::vm::logging::forward_logs(
- LOG_PREFIX,
+ LOG_PREFIX_STDERR,
lines.into_inner().into_inner(),
LOG_LEVEL,
));
- None
+ found_addr
}
}