// the requests and responses are not sharing tx. It is then up to
// the implementation to make sure the config is applied correctly.
pub apply_tx_config: Option<ApplyTxConfigFn>,
+
+ pub flags: u32,
}
/// Create a slice, given a buffer and a length
get_tx_iterator: Some(rs_template_state_get_tx_iterator),
get_tx_data: rs_template_get_tx_data,
apply_tx_config: None,
+ flags: 0,
};
let ip_proto_str = CString::new("tcp").unwrap();
get_tx_iterator : Some(rs_dhcp_state_get_tx_iterator),
get_tx_data : rs_dhcp_get_tx_data,
apply_tx_config : None,
+ flags : 0,
};
let ip_proto_str = CString::new("udp").unwrap();
set_de_state: rs_dns_state_set_tx_detect_state,
get_tx_data: rs_dns_state_get_tx_data,
apply_tx_config: Some(rs_dns_apply_tx_config),
+ flags: 0,
};
let ip_proto_str = CString::new("udp").unwrap();
set_de_state: rs_dns_state_set_tx_detect_state,
get_tx_data: rs_dns_state_get_tx_data,
apply_tx_config: Some(rs_dns_apply_tx_config),
+ flags: 0,
};
let ip_proto_str = CString::new("tcp").unwrap();
get_tx_iterator : None,
get_tx_data : rs_ikev2_get_tx_data,
apply_tx_config : None,
+ flags : 0,
};
let ip_proto_str = CString::new("udp").unwrap();
get_tx_iterator : None,
get_tx_data : rs_krb5_get_tx_data,
apply_tx_config : None,
+ flags : 0,
};
// register UDP parser
let ip_proto_str = CString::new("udp").unwrap();
get_tx_iterator : None,
get_tx_data : rs_ntp_get_tx_data,
apply_tx_config : None,
+ flags : 0,
};
let ip_proto_str = CString::new("udp").unwrap();
get_tx_iterator: None,
get_tx_data: rs_rdp_get_tx_data,
apply_tx_config: None,
+ flags: 0,
};
let ip_proto_str = std::ffi::CString::new("tcp").unwrap();
get_tx_iterator: Some(rs_rfb_state_get_tx_iterator),
get_tx_data: rs_rfb_get_tx_data,
apply_tx_config: None,
+ flags: 0,
};
let ip_proto_str = CString::new("tcp").unwrap();
get_tx_iterator: None,
get_tx_data: rs_sip_get_tx_data,
apply_tx_config: None,
+ flags: 0,
};
let ip_proto_str = CString::new("udp").unwrap();
get_tx_iterator : None,
get_tx_data : rs_snmp_get_tx_data,
apply_tx_config : None,
+ flags : 0,
};
let ip_proto_str = CString::new("udp").unwrap();
if AppLayerProtoDetectConfProtoDetectionEnabled(ip_proto_str.as_ptr(), parser.name) != 0 {
get_tx_iterator: None,
get_tx_data: rs_ssh_get_tx_data,
apply_tx_config: None,
+ flags: 0,
};
let ip_proto_str = CString::new("tcp").unwrap();
p->ApplyTxConfig);
}
+ if (p->flags) {
+ AppLayerParserRegisterOptionFlags(p->ip_proto, alproto,
+ p->flags);
+
+ }
+
return 0;
}
AppLayerTxData *(*GetTxData)(void *tx);
bool (*ApplyTxConfig)(void *state, void *tx, int mode, AppLayerTxConfig);
+
+ uint32_t flags;
} AppLayerParser;
/**