David Schwartz wrote:
"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.


That's exactly what I said. What you are saying is that we need to add O/S specific code to work around a problem with the O/S.

The new code gets rid of all that so it's no longer an issue.


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.


That was true before I touched the code. I started to work on it during development of 4.2.0.

Danny

    DS


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


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

Reply via email to