| export type NetworkModeBlockReason = "host" | "container_namespace_join"; | |
| export function normalizeNetworkMode(network: string | undefined): string | undefined { | |
| const normalized = network?.trim().toLowerCase(); | |
| return normalized || undefined; | |
| } | |
| export function getBlockedNetworkModeReason(params: { | |
| network: string | undefined; | |
| allowContainerNamespaceJoin?: boolean; | |
| }): NetworkModeBlockReason | null { | |
| const normalized = normalizeNetworkMode(params.network); | |
| if (!normalized) { | |
| return null; | |
| } | |
| if (normalized === "host") { | |
| return "host"; | |
| } | |
| if (normalized.startsWith("container:") && params.allowContainerNamespaceJoin !== true) { | |
| return "container_namespace_join"; | |
| } | |
| return null; | |
| } | |
| export function isDangerousNetworkMode(network: string | undefined): boolean { | |
| const normalized = normalizeNetworkMode(network); | |
| return normalized === "host" || normalized?.startsWith("container:") === true; | |
| } | |