dns: use Direction enum

pull/6629/head
Shivani Bhardwaj 4 years ago committed by Victor Julien
parent a866499bca
commit a19d2b4e1e

@ -16,7 +16,7 @@
*/ */
use super::dns::DNSTransaction; use super::dns::DNSTransaction;
use crate::core; use crate::core::*;
use std::ffi::CStr; use std::ffi::CStr;
use std::os::raw::{c_char, c_void}; use std::os::raw::{c_char, c_void};
@ -62,13 +62,13 @@ pub extern "C" fn rs_dns_opcode_match(
detect: &mut DetectDnsOpcode, detect: &mut DetectDnsOpcode,
flags: u8, flags: u8,
) -> u8 { ) -> u8 {
let header_flags = if flags & core::STREAM_TOSERVER != 0 { let header_flags = if flags & Direction::ToServer as u8 != 0 {
if let Some(request) = &tx.request { if let Some(request) = &tx.request {
request.header.flags request.header.flags
} else { } else {
return 0; return 0;
} }
} else if flags & core::STREAM_TOCLIENT != 0 { } else if flags & Direction::ToClient as u8 != 0 {
if let Some(response) = &tx.response { if let Some(response) = &tx.response {
response.header.flags response.header.flags
} else { } else {

@ -23,7 +23,7 @@ use std::collections::HashMap;
use std::collections::VecDeque; use std::collections::VecDeque;
use crate::applayer::*; use crate::applayer::*;
use crate::core::{self, AppProto, ALPROTO_UNKNOWN, IPPROTO_UDP, IPPROTO_TCP}; use crate::core::{self, *};
use crate::dns::parser; use crate::dns::parser;
use nom7::{Err, IResult}; use nom7::{Err, IResult};
@ -909,11 +909,11 @@ pub unsafe extern "C" fn rs_dns_probe(
let (is_dns, is_request, _) = probe(slice, slice.len()); let (is_dns, is_request, _) = probe(slice, slice.len());
if is_dns { if is_dns {
let dir = if is_request { let dir = if is_request {
core::STREAM_TOSERVER Direction::ToServer
} else { } else {
core::STREAM_TOCLIENT Direction::ToClient
}; };
*rdir = dir; *rdir = dir as u8;
return ALPROTO_DNS; return ALPROTO_DNS;
} }
return 0; return 0;
@ -935,12 +935,12 @@ pub unsafe extern "C" fn rs_dns_probe_tcp(
let (is_dns, is_request, _) = probe_tcp(slice); let (is_dns, is_request, _) = probe_tcp(slice);
if is_dns { if is_dns {
let dir = if is_request { let dir = if is_request {
core::STREAM_TOSERVER Direction::ToServer
} else { } else {
core::STREAM_TOCLIENT Direction::ToClient
}; };
if direction & (core::STREAM_TOSERVER|core::STREAM_TOCLIENT) != dir { if (direction & DIR_BOTH) != dir.into() {
*rdir = dir; *rdir = dir as u8;
} }
return ALPROTO_DNS; return ALPROTO_DNS;
} }

Loading…
Cancel
Save