dns/rust - if let Some over options instead of loop.

Except in one case where the loop makes more sense for easy break
out.

Also remove one line of non-conforming debug logging.
pull/3577/head
Jason Ish 7 years ago committed by Victor Julien
parent 4163d5c360
commit b7a58680db

@ -215,10 +215,10 @@ impl DNSTransaction {
/// Get the DNS transactions ID (not the internal tracking ID).
pub fn tx_id(&self) -> u16 {
for request in &self.request {
if let &Some(ref request) = &self.request {
return request.header.tx_id;
}
for response in &self.response {
if let &Some(ref response) = &self.response {
return response.header.tx_id;
}
@ -229,7 +229,7 @@ impl DNSTransaction {
/// Get the reply code of the transaction. Note that this will
/// also return 0 if there is no reply.
pub fn rcode(&self) -> u16 {
for response in &self.response {
if let &Some(ref response) = &self.response {
return response.header.flags & 0x000f;
}
return 0;
@ -292,7 +292,6 @@ impl DNSState {
}
pub fn free_tx(&mut self, tx_id: u64) {
SCLogDebug!("************** Freeing TX with ID {}", tx_id);
let len = self.transactions.len();
let mut found = false;
let mut index = 0;
@ -770,7 +769,7 @@ pub extern "C" fn rs_dns_tx_get_query_name(tx: &mut DNSTransaction,
len: *mut libc::uint32_t)
-> libc::uint8_t
{
for request in &tx.request {
if let &Some(ref request) = &tx.request {
if (i as usize) < request.queries.len() {
let query = &request.queries[i as usize];
if query.name.len() > 0 {
@ -810,7 +809,7 @@ pub extern "C" fn rs_dns_tx_get_query_rrtype(tx: &mut DNSTransaction,
rrtype: *mut libc::uint16_t)
-> libc::uint8_t
{
for request in &tx.request {
if let &Some(ref request) = &tx.request {
if (i as usize) < request.queries.len() {
let query = &request.queries[i as usize];
if query.name.len() > 0 {

@ -564,7 +564,7 @@ pub extern "C" fn rs_dns_log_json_query(tx: &mut DNSTransaction,
-> *mut JsonT
{
let index = i as usize;
for request in &tx.request {
if let &Some(ref request) = &tx.request {
if index < request.queries.len() {
let query = &request.queries[index];
if dns_log_rrtype_enabled(query.rrtype, flags) {
@ -587,7 +587,7 @@ pub extern "C" fn rs_dns_log_json_answer(tx: &mut DNSTransaction,
flags: libc::uint64_t)
-> *mut JsonT
{
for response in &tx.response {
if let &Some(ref response) = &tx.response {
for query in &response.queries {
if dns_log_rrtype_enabled(query.rrtype, flags) {
let js = dns_log_json_answer(response, flags as u64);
@ -679,6 +679,8 @@ pub extern "C" fn rs_dns_log_json_answer_v1(tx: &mut DNSTransaction,
-> *mut JsonT
{
let index = i as usize;
// Note for loop over Option for easier break out to default
// return value.
for response in &tx.response {
if response.header.flags & 0x000f > 0 {
if index == 0 {
@ -705,14 +707,13 @@ pub extern "C" fn rs_dns_log_json_authority_v1(tx: &mut DNSTransaction,
-> *mut JsonT
{
let index = i as usize;
for response in &tx.response {
if index >= response.authorities.len() {
break;
}
let answer = &response.authorities[index];
if dns_log_rrtype_enabled(answer.rrtype, flags) {
let js = dns_log_json_answer_v1(&response.header, answer);
return js.unwrap();
if let &Some(ref response) = &tx.response {
if index < response.authorities.len() {
let answer = &response.authorities[index];
if dns_log_rrtype_enabled(answer.rrtype, flags) {
let js = dns_log_json_answer_v1(&response.header, answer);
return js.unwrap();
}
}
}
return std::ptr::null_mut();

@ -41,14 +41,12 @@ pub extern "C" fn rs_dns_lua_get_rrname(clua: &mut CLuaState,
lua: clua,
};
for request in &tx.request {
if let &Some(ref request) = &tx.request {
for query in &request.queries {
lua.pushstring(&String::from_utf8_lossy(&query.name));
return 1;
}
}
for response in &tx.response {
} else if let &Some(ref response) = &tx.response {
for query in &response.queries {
lua.pushstring(&String::from_utf8_lossy(&query.name));
return 1;

Loading…
Cancel
Save