@@ -138,6 +138,7 @@ pub enum GatewayListenerRequirement {
138138 address : SocketAddr ,
139139 driver_name : String ,
140140 reason : String ,
141+ allow_delayed_bind : bool ,
141142 } ,
142143 DefaultRouteInterface {
143144 driver_name : String ,
@@ -149,6 +150,12 @@ pub enum GatewayListenerRequirement {
149150 } ,
150151}
151152
153+ #[ derive( Clone , Copy , Debug , Eq , PartialEq ) ]
154+ pub enum GatewayListenerBindPolicy {
155+ Deny ,
156+ TrustedBuiltinPodman ,
157+ }
158+
152159impl GatewayListenerRequirement {
153160 pub fn driver_name ( & self ) -> & str {
154161 match self {
@@ -587,6 +594,7 @@ impl ComputeRuntime {
587594 driver_name : String ,
588595 driver : SharedComputeDriver ,
589596 driver_process : Option < Arc < ManagedDriverProcess > > ,
597+ listener_bind_policy : GatewayListenerBindPolicy ,
590598 store : Arc < Store > ,
591599 sandbox_index : SandboxIndex ,
592600 sandbox_watch_bus : SandboxWatchBus ,
@@ -642,6 +650,9 @@ impl ComputeRuntime {
642650 address,
643651 driver_name : driver_name. clone ( ) ,
644652 reason : requirement. reason ,
653+ allow_delayed_bind : listener_bind_policy
654+ == GatewayListenerBindPolicy :: TrustedBuiltinPodman
655+ && requirement. allow_delayed_bind ,
645656 } )
646657 }
647658 Selector :: DefaultRouteInterface ( _) => {
@@ -724,6 +735,7 @@ impl ComputeRuntime {
724735 endpoint. name ,
725736 driver,
726737 endpoint. driver_process ,
738+ GatewayListenerBindPolicy :: Deny ,
727739 store,
728740 sandbox_index,
729741 sandbox_watch_bus,
@@ -10487,6 +10499,7 @@ mod tests {
1048710499 "test-driver" . to_string ( ) ,
1048810500 Arc :: new ( TestDriver :: default ( ) ) ,
1048910501 None ,
10502+ GatewayListenerBindPolicy :: Deny ,
1049010503 store,
1049110504 SandboxIndex :: new ( ) ,
1049210505 SandboxWatchBus :: new ( ) ,
@@ -10674,6 +10687,7 @@ mod tests {
1067410687 address: "172.19.0.1:17670" . parse( ) . unwrap( ) ,
1067510688 driver_name: "docker" . to_string( ) ,
1067610689 reason: "external driver managed bridge" . to_string( ) ,
10690+ allow_delayed_bind: false ,
1067710691 } ]
1067810692 ) ;
1067910693
0 commit comments