<p>When you monitor an IPv6 DNS server with check_dig -6, and uses the server name (not its IP address), check_dig falls back to IPv4 if the name server does not reply immediately in IPv6. It is not the behavior I expect (if I say -6, it is because I want to be sure IPv6 works).</p>

<p>Reading the source, it seems check_dig puts the -6 as the end of the command line (call to xasprintf ). Testing with dig on the command line, it seems indeed that -6 does not have the same semantics when used at the begin or at the end of the command line (before or after the server name). I therefore suggest this patch:</p>

<pre><code>--- ./plugins/check_dig.c.orig  2014-01-27 14:55:56.000000000 +0100
+++ ./plugins/check_dig.c   2014-01-27 15:10:07.000000000 +0100
@@ -88,8 +88,8 @@
     usage_va(_("Could not parse arguments"));

   /* get the command to run */
-  xasprintf (&command_line, "%s @%s -p %d %s -t %s %s %s",
-            PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args, query_transport);
+  xasprintf (&command_line, "%s %s @%s -p %d %s -t %s %s",
+            PATH_TO_DIG, query_transport, dns_server, server_port, query_address, record_type, dig_args);

   alarm (timeout_interval);
   gettimeofday (&tv, NULL);

̀`̀`

  Yes, dig's parsing is... special.
</code></pre>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href='https://github.com/monitoring-plugins/monitoring-plugins/issues/1228'>view it on GitHub</a>.<img src='https://github.com/notifications/beacon/5514713__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcwNjM2NDczMCwiZGF0YSI6eyJpZCI6MjQzMjI3MjB9fQ==--8f5fe93e9f106eaee4eb8660a47a51f7be84091d.gif' height='1' width='1'></p>