]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
nfq: add errno display when verdict fail 348/head
authorEric Leblond <eric@regit.org>
Thu, 24 Jan 2013 21:37:39 +0000 (22:37 +0100)
committerEric Leblond <eric@regit.org>
Fri, 26 Apr 2013 16:27:27 +0000 (18:27 +0200)
In case of error, errno is set by sendmsg which is called by
nfnetlink and which is called by libnetfilter_queue. This patch
displays the string expression of errno if verdict has failed.

src/source-nfq.c

index 6fdc3e391c6f974b68f6193edd6afac3cb5add66..fe4f0f5412254ac4e4b045d7800cb00ed87c58aa 100644 (file)
@@ -316,7 +316,8 @@ static void NFQVerdictCacheFlush(NFQQueueVars *t)
     } while ((ret < 0) && (iter++ < NFQ_VERDICT_RETRY_TIME));
 
     if (ret < 0) {
-        SCLogWarning(SC_ERR_NFQ_SET_VERDICT, "nfq_set_verdict_batch failed");
+        SCLogWarning(SC_ERR_NFQ_SET_VERDICT, "nfq_set_verdict_batch failed: %s",
+                     strerror(errno));
     } else {
         t->verdict_cache.len = 0;
         t->verdict_cache.mark_valid = 0;
@@ -419,8 +420,8 @@ int NFQSetupPkt (Packet *p, struct nfq_q_handle *qh, void *data)
             } while ((ret < 0) && (iter++ < NFQ_VERDICT_RETRY_TIME));
             if (ret < 0) {
                 SCLogWarning(SC_ERR_NFQ_SET_VERDICT,
-                             "nfq_set_verdict of %p failed %" PRId32 "",
-                             p, ret);
+                             "nfq_set_verdict of %p failed %" PRId32 ": %s",
+                             p, ret, strerror(errno));
             }
             return -1 ;
         }
@@ -1107,7 +1108,9 @@ TmEcode NFQSetVerdict(Packet *p) {
     NFQMutexUnlock(t);
 
     if (ret < 0) {
-        SCLogWarning(SC_ERR_NFQ_SET_VERDICT, "nfq_set_verdict of %p failed %" PRId32 "", p, ret);
+        SCLogWarning(SC_ERR_NFQ_SET_VERDICT,
+                     "nfq_set_verdict of %p failed %" PRId32 ": %s",
+                     p, ret, strerror(errno));
         return TM_ECODE_FAILED;
     }
     return TM_ECODE_OK;