Sounds good to me. Just started using rebound and thought it would be good to 
use dig to prepopulate the cache. Also noticed host(1) has the same problem but 
was waiting for a response to dig first.

Edgar

⁣Sent from BlueMail ​

On May 26, 2017, 7:34 AM, at 7:34 AM, Ted Unangst <[email protected]> wrote:
>Edgar Pettijohn wrote:
>> This may not be the best way to handle this, but it was the first fix
>to
>> come to mind.  Not sure where to put this in the manual or if its
>even
>> worth documenting. Thoughts?
>
>I think this is a better fix. the user shouldn't worry about such
>things. at
>least until a better path forward is determined.
>
>
>Index: bin/dig/dighost.c
>===================================================================
>RCS file: /cvs/src/usr.sbin/bind/bin/dig/dighost.c,v
>retrieving revision 1.15
>diff -u -p -r1.15 dighost.c
>--- bin/dig/dighost.c  28 Sep 2015 15:55:54 -0000      1.15
>+++ bin/dig/dighost.c  26 May 2017 12:03:53 -0000
>@@ -34,6 +34,8 @@
> #include <string.h>
> #include <limits.h>
>
>+#include <sys/sysctl.h>
>+
> #ifdef HAVE_LOCALE_H
> #include <locale.h>
> #endif
>@@ -2778,6 +2780,15 @@ recv_done(isc_task_t *task, isc_event_t
>       isc_region_t r;
>       isc_buffer_t *buf = NULL;
> #endif
>+      static int checked_jackport;
>+      static int jackport;
>+
>+      if (!checked_jackport) {
>+              int dnsjacking[2] = { CTL_KERN, KERN_DNSJACKPORT };
>+              size_t portlen = sizeof(jackport);
>+              sysctl(dnsjacking, 2, &jackport, &portlen, NULL, 0);
>+              checked_jackport = 1;
>+      }
>
>       UNUSED(task);
>       INSIST(!free_now);
>@@ -2854,6 +2865,7 @@ recv_done(isc_task_t *task, isc_event_t
>               * sent to 0.0.0.0, :: or to a multicast addresses.
>               * XXXMPA broadcast needs to be handled here as well.
>               */
>+              if (jackport == 0)
>               if ((!isc_sockaddr_eqaddr(&query->sockaddr, &any) &&
>                    !isc_sockaddr_ismulticast(&query->sockaddr)) ||
>                   isc_sockaddr_getport(&query->sockaddr) !=

Reply via email to