Probing parsers written in Rust cannot look into the Flow, which is
opaque to them.
Add SCFlowGetAppProtocolToClient() to get the protocol detected on
the to-client side, and SCAppLayerProtoDetectGetStreamDataSize() to
get the amount of stream data available for protocol detection in a
given direction.
These are needed by the IMAP probing parser to tell IMAP apart from
FTP on "USER CAPABILITY".
Ticket #8276
#[doc = "\\brief Get the size of the stream data available for protocol detection\n in the given direction, for use by probing parsers.\n\n\\retval bool false if the flow has no TCP session"]
#[doc = "\\brief Function type for flow initialization callbacks.\n\n Once registered with SCFlowRegisterInitCallback, this function will\n be called every time a flow is initialized, or in other words,\n every time Suricata picks up a flow.\n\n\\param tv The ThreadVars data structure for the thread creating the\n flow.\n\\param f The newly initialized flow.\n\\param p The packet related to creating the new flow.\n\\param user The user data provided during callback registration."]
#[doc = "\\brief Function type for flow initialization callbacks.\n\n Once registered with SCFlowRegisterInitCallback, this function will\n be called every time a flow is initialized, or in other words,\n every time Suricata picks up a flow.\n\n\\param tv The ThreadVars data structure for the thread creating the\n flow.\n\\param f The newly initialized flow.\n\\param p The packet related to creating the new flow.\n\\param user The user data provided during callback registration."]