exceptions: extract 'auto' check to function

Part of
Bug #5825
pull/9021/head
Juliana Fajardini 3 years ago committed by Victor Julien
parent 69311ab02f
commit e849afbda1

@ -184,6 +184,19 @@ static enum ExceptionPolicy ExceptionPolicyConfigValueParse(
return policy;
}
static enum ExceptionPolicy ExceptionPolicyPickAuto(bool midstream_enabled, bool support_flow)
{
enum ExceptionPolicy policy = EXCEPTION_POLICY_NOT_SET;
if (!midstream_enabled && EngineModeIsIPS()) {
if (support_flow) {
policy = EXCEPTION_POLICY_DROP_FLOW;
} else {
policy = EXCEPTION_POLICY_DROP_PACKET;
}
}
return policy;
}
static enum ExceptionPolicy ExceptionPolicyMasterParse(const char *value)
{
enum ExceptionPolicy policy = EXCEPTION_POLICY_NOT_SET;
@ -228,6 +241,9 @@ enum ExceptionPolicy ExceptionPolicyParse(const char *option, bool support_flow)
policy = ExceptionPolicyMasterParse(value_str);
} else {
policy = ExceptionPolicyConfigValueParse(option, value_str);
if (policy == EXCEPTION_POLICY_AUTO) {
policy = ExceptionPolicyPickAuto(false, support_flow);
}
if (!support_flow) {
policy = PickPacketAction(option, policy);
}
@ -247,7 +263,9 @@ enum ExceptionPolicy ExceptionPolicyMidstreamParse(bool midstream_enabled)
/* policy was set directly */
if ((ConfGet("stream.midstream-policy", &value_str)) == 1 && value_str != NULL) {
policy = ExceptionPolicyConfigValueParse("midstream-policy", value_str);
if (midstream_enabled) {
if (policy == EXCEPTION_POLICY_AUTO) {
policy = ExceptionPolicyPickAuto(midstream_enabled, true);
} else if (midstream_enabled) {
if (policy != EXCEPTION_POLICY_NOT_SET && policy != EXCEPTION_POLICY_PASS_FLOW) {
FatalErrorOnInit(
"Error parsing stream.midstream-policy from config file. \"%s\" is "

Loading…
Cancel
Save