| 2467 | } |
| 2468 | |
| 2469 | fn docker_gateway_route_for_host( |
| 2470 | info: &SystemInfo, |
| 2471 | bridge_gateway_ip: IpAddr, |
| 2472 | port: u16, |
| 2473 | host_gateway_ip: Option<IpAddr>, |
| 2474 | host_requires_host_gateway_alias: bool, |
| 2475 | ) -> DockerGatewayRoute { |
| 2476 | if let Some(host_alias_ip) = host_gateway_ip { |
| 2477 | return DockerGatewayRoute::Bridge { |
| 2478 | bind_address: SocketAddr::new(host_alias_ip, port), |
| 2479 | host_alias_ip, |
| 2480 | }; |
| 2481 | } |
| 2482 | |
| 2483 | if host_requires_host_gateway_alias || uses_host_gateway_alias(info) { |
| 2484 | DockerGatewayRoute::HostGateway |
| 2485 | } else { |
| 2486 | DockerGatewayRoute::Bridge { |
| 2487 | bind_address: SocketAddr::new(bridge_gateway_ip, port), |
| 2488 | host_alias_ip: bridge_gateway_ip, |
| 2489 | } |
| 2490 | } |
| 2491 | } |
| 2492 | |
| 2493 | fn host_runtime_requires_host_gateway_alias() -> bool { |
| 2494 | cfg!(target_os = "macos") |