]> git.ipfire.org Git - people/ms/suricata.git/commitdiff
dns/rust - if let Some over options instead of loop.
authorJason Ish <ish@unx.ca>
Fri, 7 Dec 2018 15:08:16 +0000 (09:08 -0600)
committerVictor Julien <victor@inliniac.net>
Mon, 10 Dec 2018 13:32:27 +0000 (14:32 +0100)
Except in one case where the loop makes more sense for easy break
out.

Also remove one line of non-conforming debug logging.

rust/src/dns/dns.rs
rust/src/dns/log.rs
rust/src/dns/lua.rs

index f6f2fd5810ec5049f85bb9299d38891452876944..27169c8f8ed83044f832ec22e4d74fea46a9403c 100644 (file)
@@ -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 {
index 0ebbeb241a05edc1504668cc773ac1a2194c72a4..9a34c5b997ba1ecd1502d3e8d8d1e113390ee3f3 100644 (file)
@@ -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();
index 0c1776a741ad7a93744741d7278b04a82ad15192..fddeeb976786aeda24964811a456da1f8de16ae3 100644 (file)
@@ -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;