@@ -291,8 +291,9 @@ pub struct WebSphereMqLog {
291291}
292292
293293impl L7ProtocolParserInterface for WebSphereMqLog {
294- fn check_payload ( & mut self , payload : & [ u8 ] , _param : & ParseParam ) -> Option < LogMessageType > {
295- self . parser . check_payload ( payload)
294+ fn check_payload ( & mut self , payload : & [ u8 ] , param : & ParseParam ) -> Option < LogMessageType > {
295+ self . parser
296+ . check_payload ( payload, param. web_sphere_mq_parse_conf . decompress_enabled )
296297 }
297298
298299 fn parse_payload ( & mut self , payload : & [ u8 ] , param : & ParseParam ) -> Result < L7ParseResult > {
@@ -303,6 +304,8 @@ impl L7ProtocolParserInterface for WebSphereMqLog {
303304
304305 let custom_policies =
305306 config. get_custom_field_policies ( L7Protocol :: WebSphereMq . into ( ) , param) ;
307+ let parse_xml_enabled = param. web_sphere_mq_parse_conf . parse_xml_enabled ;
308+ let decompress_enabled = param. web_sphere_mq_parse_conf . decompress_enabled ;
306309 let mut pos = 0 ;
307310 let mut loop_count = 0 ;
308311 let mut results: Vec < L7ProtocolInfo > = Vec :: with_capacity ( Self :: INIT_L7_RESULT_CAPACITY ) ;
@@ -311,11 +314,16 @@ impl L7ProtocolParserInterface for WebSphereMqLog {
311314 let parsed_size = self . parser . parse_payload (
312315 & payload[ pos..] ,
313316 param. direction ,
314- param. web_sphere_mq_parse_conf . parse_xml_enabled ,
317+ parse_xml_enabled,
318+ decompress_enabled,
315319 ) ;
316320 if parsed_size == 0 {
317321 break ;
318322 }
323+ if self . parser . skip_frame {
324+ pos += parsed_size;
325+ continue ;
326+ }
319327 let mut info = WebSphereMqInfo :: default ( ) ;
320328 info. is_tls = param. is_tls ( ) ;
321329 info. base . is_async = true ;
0 commit comments