"Danny Mayer" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]

> David Schwartz wrote:

>>     Right. And this is a Linux-specific bug, caused by the way NTP 
>> decides what interfaces to bind to *on* *Linux*.

> That's actually an incorrect assessment. There is no Linux specific code 
> in that area of the code. It does have to do with the way Linux responds 
> to certain network function calls that used to result in it using the 
> wildcard socket. This no longer happens in the recent releases of the 
> development version. If it does it's a bug.

    No, the assessment is correct. If Linux responds differently to network 
calls but the code that could fix that difference contains no Linux-specific 
code, you wind up with a Linux-specific bug.

> We cannot be responsible for what Redhat or any other vendor does with the 
> code.

    That is true, but RedHat had to do something to fix the problem. 
However, changing the behavior of a flag to its opposite was probably a bad 
choice. Changing the default and adding a new flag to get the default back 
would have been better.

>>     Of course, but that's broken design. The effect of listening on 
>> "virtual IPs" or what constitues a virtual IP is a platform-specific 
>> thing. The flag should specify what NTP does, not how it does it. If it's 
>> going to be a platform-specific flag, it should be carefully arranged so 
>> that specifying *no* platform-specific flags gets you as close to the 
>> same behavior on all platforms.

> The effect of -L is to listen on just the first IP address of the network 
> hardware interface for each interface that it encounters. So if you have 
> an eth0 and an eth1 interface it will use just the first address of eth0 
> and the first address of eth1. It will always use the loopback addresses, 
> no matter what you specify.

> It is NOT a platform-specific flag. If vendors use it for other purposes 
> then we cannot do anything about that. You can always use the reference 
> implementation can get what you need.

    It is a platform-specific flag if the *effect* of binding to virtual 
interfaces is different on different platforms.

    For example, suppose that NTP had code on FreeBSD to correctly determine 
the target address even if the socket was only bound to the wildcard address 
but there was no such code on Linux. The *effect* of not binding to virtual 
addresses then would be very different on Linux than it is on FreeBSD. So 
while the flag does the same internal thing to NTP, it has vastly different 
effects on different platforms.

    The meaning of an option is what effect it has, not what internal detail 
it changes.

    That's why it is nonsense to say things like "NTP, by default, binds to 
<all/no> virtual interfaces". That is a technical internal detail, and if 
that same detail results in different effects, then NTP is broken. NTO 
should provide the same effect, by default, on all platforms. If it has to 
do different things to get the same effect because Linux responds 
differently to some network functions, then it should do those different 
things by default. Otherwise, it has a Linux-specific bug.

    In any event, I'm glad to hear that NTP now does provide the same 
behavior by default on all platforms. Thanks for the good work.

    DS


_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.isc.org/mailman/listinfo/questions

Reply via email to