@@ -125,7 +125,7 @@ pub mod proto {
125125 proto:: {
126126 BackendSet , InvalidBackend , InvalidDistribution , InvalidFailureAccrual , InvalidMeta ,
127127 } ,
128- Meta , RouteBackend , RouteDistribution ,
128+ ClientPolicyOverrides , Meta , RouteBackend , RouteDistribution ,
129129 } ;
130130 use linkerd2_proxy_api:: outbound:: { self , http_route} ;
131131 use linkerd_http_route:: http:: {
@@ -217,13 +217,15 @@ pub mod proto {
217217 }
218218 }
219219
220- impl TryFrom < outbound:: proxy_protocol:: Http1 > for Http1 {
221- type Error = InvalidHttpRoute ;
222- fn try_from ( proto : outbound:: proxy_protocol:: Http1 ) -> Result < Self , Self :: Error > {
220+ impl Http1 {
221+ pub fn try_from (
222+ overrides : ClientPolicyOverrides ,
223+ proto : outbound:: proxy_protocol:: Http1 ,
224+ ) -> Result < Self , InvalidHttpRoute > {
223225 let routes = proto
224226 . routes
225227 . into_iter ( )
226- . map ( try_route)
228+ . map ( |p| try_route ( overrides , p ) )
227229 . collect :: < Result < Arc < [ _ ] > , _ > > ( ) ?;
228230 Ok ( Self {
229231 routes,
@@ -232,13 +234,15 @@ pub mod proto {
232234 }
233235 }
234236
235- impl TryFrom < outbound:: proxy_protocol:: Http2 > for Http2 {
236- type Error = InvalidHttpRoute ;
237- fn try_from ( proto : outbound:: proxy_protocol:: Http2 ) -> Result < Self , Self :: Error > {
237+ impl Http2 {
238+ pub fn try_from (
239+ overrides : ClientPolicyOverrides ,
240+ proto : outbound:: proxy_protocol:: Http2 ,
241+ ) -> Result < Self , InvalidHttpRoute > {
238242 let routes = proto
239243 . routes
240244 . into_iter ( )
241- . map ( try_route)
245+ . map ( |p| try_route ( overrides , p ) )
242246 . collect :: < Result < Arc < [ _ ] > , _ > > ( ) ?;
243247 Ok ( Self {
244248 routes,
@@ -247,7 +251,10 @@ pub mod proto {
247251 }
248252 }
249253
250- fn try_route ( proto : outbound:: HttpRoute ) -> Result < Route , InvalidHttpRoute > {
254+ fn try_route (
255+ overrides : ClientPolicyOverrides ,
256+ proto : outbound:: HttpRoute ,
257+ ) -> Result < Route , InvalidHttpRoute > {
251258 let outbound:: HttpRoute {
252259 hosts,
253260 rules,
@@ -265,14 +272,15 @@ pub mod proto {
265272
266273 let rules = rules
267274 . into_iter ( )
268- . map ( |rule| try_rule ( & meta, rule) )
275+ . map ( |rule| try_rule ( & meta, overrides , rule) )
269276 . collect :: < Result < Vec < _ > , _ > > ( ) ?;
270277
271278 Ok ( Route { hosts, rules } )
272279 }
273280
274281 fn try_rule (
275282 meta : & Arc < Meta > ,
283+ overrides : ClientPolicyOverrides ,
276284 proto : outbound:: http_route:: Rule ,
277285 ) -> Result < Rule , InvalidHttpRoute > {
278286 #[ allow( deprecated) ]
@@ -300,13 +308,8 @@ pub mod proto {
300308 . ok_or ( InvalidHttpRoute :: Missing ( "distribution" ) ) ?
301309 . try_into ( ) ?;
302310
303- let export_hostname_labels = false ;
304- let mut params = RouteParams :: try_from_proto (
305- timeouts,
306- retry,
307- allow_l5d_request_headers,
308- export_hostname_labels,
309- ) ?;
311+ let mut params =
312+ RouteParams :: try_from_proto ( timeouts, retry, allow_l5d_request_headers, overrides) ?;
310313 let legacy = request_timeout. map ( TryInto :: try_into) . transpose ( ) ?;
311314 params. timeouts . request = params. timeouts . request . or ( legacy) ;
312315
@@ -326,7 +329,7 @@ pub mod proto {
326329 timeouts : Option < linkerd2_proxy_api:: http_route:: Timeouts > ,
327330 retry : Option < http_route:: Retry > ,
328331 allow_l5d_request_headers : bool ,
329- export_hostname_labels : bool ,
332+ overrides : ClientPolicyOverrides ,
330333 ) -> Result < Self , InvalidHttpRoute > {
331334 Ok ( Self {
332335 retry : retry. map ( Retry :: try_from) . transpose ( ) ?,
@@ -335,7 +338,7 @@ pub mod proto {
335338 . transpose ( ) ?
336339 . unwrap_or_default ( ) ,
337340 allow_l5d_request_headers,
338- export_hostname_labels,
341+ export_hostname_labels : overrides . export_hostname_labels ,
339342 } )
340343 }
341344 }
0 commit comments