diff --git a/rust/src/pgsql/pgsql.rs b/rust/src/pgsql/pgsql.rs index 8a2b0da157b0..658c2326ffd5 100644 --- a/rust/src/pgsql/pgsql.rs +++ b/rust/src/pgsql/pgsql.rs @@ -344,10 +344,6 @@ impl PgsqlState { ); match PgsqlState::state_based_req_parsing(self.state_progress, start) { Ok((rem, request)) => { - sc_app_layer_parser_trigger_raw_stream_reassembly( - flow, - Direction::ToServer as i32, - ); start = rem; let new_state = PgsqlState::request_next_state(&request); @@ -375,6 +371,10 @@ impl PgsqlState { /* The server won't send any responses to such requests, so transaction should be over */ tx.tx_res_state = PgsqlTxProgress::TxDone; } + sc_app_layer_parser_trigger_raw_stream_reassembly( + flow, + Direction::ToServer as i32, + ); } } } else { @@ -511,10 +511,6 @@ impl PgsqlState { while !start.is_empty() { match PgsqlState::state_based_resp_parsing(self.state_progress, start) { Ok((rem, response)) => { - sc_app_layer_parser_trigger_raw_stream_reassembly( - flow, - Direction::ToClient as i32, - ); start = rem; SCLogDebug!("Response is {:?}", &response); let new_state = self.response_process_next_state(&response, flow); @@ -546,6 +542,10 @@ impl PgsqlState { if Self::response_is_complete(state) { tx.tx_req_state = PgsqlTxProgress::TxDone; tx.tx_res_state = PgsqlTxProgress::TxDone; + sc_app_layer_parser_trigger_raw_stream_reassembly( + flow, + Direction::ToClient as i32, + ); } } }