[ntp:hackers] What does "interface listen wildcard" do?

Brian Utterback brian.utterback at oracle.com
Sun Jul 7 01:04:58 UTC 2013

I never got any response to this last message. I am preparing to release 
a new version of NTP in the development version of Solaris, and I have 
customers that would really like to use the broadcast functionality. 
Does anyone have broadcast working (not multicast) and if so, what did 
you have to do? This seems like pretty basic functionality to be broken 
for so long.

On 08/15/12 11:10, Brian Utterback wrote:
> I removed the check for INT_WILDCARD, and that got it past 
> io_setbcast, but that still did not enable the broadcast client 
> functionality. According to the debug output the broadcast packets are 
> being received, but the code that tries to match them to an interface 
> fails.
> On 08/15/12 06:57, Brian Utterback wrote:
>> I haven't tried that yet since I didn't understand the code here well 
>> enough to risk modifying it. I was thinking of setting a flag when 
>> "listen  wildcard" was given to accept wildcard only then.
>>  On 08/15/12 00:04, Dave Hart wrote:
>>> On Tue, Aug 14, 2012 at 5:52 PM, Brian Utterback
>>> <brian.utterback at oracle.com>  wrote:
>>>> I have a customer that want to get broadcastclient to work, but it 
>>>> does not
>>>> because we ignore the wildcard interfaces by default. When I first 
>>>> asked
>>>> about this some time ago, it was suggested that with a newer 
>>>> version of ntpd
>>>> the customer could specify with the interface command to listen to the
>>>> wildcard addresses.
>>>> So, I am testing the latest version (2.6.7p294) to verify that this 
>>>> fixes
>>>> the problem, but I am running into a problem. When I add this line 
>>>> to the
>>>> ntp.conf file: "interface listen wildcard", I get this error:
>>>> "Unable to listen for broadcasts, no broadcast interfaces available"
>>>> This message comes from the function io_setbclient. The very first 
>>>> test in
>>>> the processing loop inside io_setbclient has this test:
>>>>                  if (interf->flags&  (INT_WILDCARD | INT_LOOPBACK))
>>>>                          continue;
>>>> As it happens, when it does this processing there are three 
>>>> interfaces on
>>>> the list, the v4 wildcard, the v6 wildcard, and the lo0 loopback, 
>>>> all of
>>>> which are rejected by this test.
>>>> So, am I misunderstanding what this command is supposed to be 
>>>> doing, or is
>>>> this a bug?
>>> I suspect it's a bug.  Does your customer get any further along if the
>>> io_setbclient() code is modified to not reject wildcards?
>>> Cheers,
>>> Dave Hart


Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live. - Martin Golding
Brian Utterback - Solaris RPE, Oracle Corporation.
Ph:603-262-3916, Em:brian.utterback at oracle.com

More information about the hackers mailing list