| 325 | } |
| 326 | |
| 327 | fn host_dns_server() -> Option<String> { |
| 328 | // Prefer systemd-resolved upstream config (skips the 127.0.0.53 |
| 329 | // stub listener which is unreachable from inside QEMU/TAP guests). |
| 330 | for path in &["/run/systemd/resolve/resolv.conf", "/etc/resolv.conf"] { |
| 331 | let Ok(resolv) = std::fs::read_to_string(path) else { |
| 332 | continue; |
| 333 | }; |
| 334 | for line in resolv.lines() { |
| 335 | let line = line.trim(); |
| 336 | if let Some(server) = line.strip_prefix("nameserver") { |
| 337 | let server = server.trim(); |
| 338 | if server == "127.0.0.53" || server.starts_with("127.") { |
| 339 | continue; |
| 340 | } |
| 341 | if !server.is_empty() { |
| 342 | return Some(server.to_string()); |
| 343 | } |
| 344 | } |
| 345 | } |
| 346 | } |
| 347 | None |
| 348 | } |
| 349 | |
| 350 | /// Remove leftover `vmtap-*` interfaces from previous driver runs. |
| 351 | /// |