@@ -456,15 +456,20 @@ impl Action {
456456 action
457457 }
458458
459- // pub fn get_final_status_code_with_fallback(&mut self, response_status_code: u16, fallback_status_code: u16, unit_trace: Option<&mut UnitTrace>) -> (u16, u16) {
460- // let action_status_code = self.get_status_code(response_status_code, Some(&mut unit_trace.unwrap()));
461- // if response_status_code == 0 && action_status_code == 0 {
462- // let final_status_code = self.get_status_code(fallback_status_code, Some(&mut unit_trace.unwrap()));
463- // (final_status_code, fallback_status_code)
464- // } else {
465- // (action_status_code, response_status_code)
466- // }
467- // }
459+ pub fn get_final_status_code_with_fallback (
460+ & mut self ,
461+ response_status_code : u16 ,
462+ fallback_status_code : u16 ,
463+ unit_trace : & mut UnitTrace ,
464+ ) -> ( u16 , u16 ) {
465+ let action_status_code = self . get_status_code ( response_status_code, Some ( unit_trace) ) ;
466+ if response_status_code == 0 && action_status_code == 0 {
467+ let final_status_code = self . get_status_code ( fallback_status_code, Some ( unit_trace) ) ;
468+ ( final_status_code, fallback_status_code)
469+ } else {
470+ ( action_status_code, response_status_code)
471+ }
472+ }
468473
469474 pub fn get_status_code ( & mut self , response_status_code : u16 , unit_trace : Option < & mut UnitTrace > ) -> u16 {
470475 match self . status_code_update . as_ref ( ) {
@@ -508,7 +513,7 @@ impl Action {
508513 continue ;
509514 }
510515
511- if !trace. exclude_response_status_codes && trace. on_response_status_codes . iter ( ) . any ( |v| * v != response_status_code) {
516+ if !trace. exclude_response_status_codes && trace. on_response_status_codes . contains ( & response_status_code) {
512517 self . apply_rule_id ( Some ( trace. id ) ) ;
513518 continue ;
514519 }
@@ -521,7 +526,7 @@ impl Action {
521526
522527 for filter in self . header_filters . clone ( ) {
523528 if !filter. on_response_status_codes . is_empty ( ) {
524- if !filter. exclude_response_status_codes && filter. on_response_status_codes . iter ( ) . all ( |v| * v != response_status_code) {
529+ if !filter. exclude_response_status_codes && ! filter. on_response_status_codes . contains ( & response_status_code) {
525530 continue ;
526531 }
527532
@@ -560,7 +565,7 @@ impl Action {
560565
561566 for filter in self . body_filters . clone ( ) {
562567 if !filter. on_response_status_codes . is_empty ( ) {
563- if !filter. exclude_response_status_codes && filter. on_response_status_codes . iter ( ) . all ( |v| * v != response_status_code) {
568+ if !filter. exclude_response_status_codes && ! filter. on_response_status_codes . contains ( & response_status_code) {
564569 continue ;
565570 }
566571
0 commit comments