A sub-state's buffers are final at a progress value the parser knows but
the API did not expose: AppLayerParserGetSubStateCompletion() had the http2
values hard-coded and asserted for every other protocol. Register the value
with the sub-state and resolve it from there.
The per-tx tx_type_eop_ts/tc fields become redundant: the tx type is the
registered sub-state, so AppLayerParserGetTxEndState() returns its
completion. http2 no longer sets the fields.
Ticket: #9149.
#[doc = " detection engine progress tracking for use by detection engine\n Reflects the \"progress\" of prefilter engines into this TX, where\n the value is offset by 1. So if for progress state 0 the engines\n are done, the value here will be 1. So a value of 0 means, no\n progress tracked yet.\n"]
pubdetect_progress_ts: u8,
pubdetect_progress_tc: u8,
#[doc = " Type of transaction. Meaning is defined by the parser. Used to\n select a state machine. 0 means it is not used."]
#[doc = " Type of transaction. Meaning is defined by the parser. Used to\n select a state machine. 0 means it is not used. A non-zero value is\n also the sub-state id registered by the parser, whose completion is\n the tx's end state."]
pubtx_type: u8,
#[doc = " End of TX progress values\n\n toserver end of tx progress value"]
pubtx_type_eop_ts: u8,
#[doc = " toclient end of tx progress value"]
pubtx_type_eop_tc: u8,
pubde_state: *mutDetectEngineState,
pubevents: *mutAppLayerDecoderEvents,
pubtxbits: *mutGenericVar,
@ -1570,7 +1566,7 @@ extern "C" {
#[doc = "\\brief register state<>name funcs for a substate"]