diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-08-07 11:32:05 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-08-07 14:19:43 +0200 |
| commit | 0cb117df776a5742b9fc76b8fdbda919b7ad0310 (patch) | |
| tree | 21870ddf0312fd8d3cfa34e570b1418dd6e2c3b7 | |
| parent | 676f8fc078d5bb1c7fe272e88fcd1345257d0267 (diff) | |
| download | mullvadvpn-0cb117df776a5742b9fc76b8fdbda919b7ad0310.tar.xz mullvadvpn-0cb117df776a5742b9fc76b8fdbda919b7ad0310.zip | |
Log dnsmasq output after initial setup
| -rw-r--r-- | test/test-manager/src/vm/network/linux.rs | 21 |
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 } } |
