[ntp:questions] ntpd IPv6 support on Windows?

Danny Mayer mayer at ntp.isc.org
Thu Jan 8 22:30:30 UTC 2009


We do have code for this. I won't use Microsoft's code though except the
standard API code. It's a matter of getting it back in. There is one
item that may yet cause me grief but that's a matter of figuring
everything out.

Danny
Dave Hart wrote:
> 
> 
> On Tue, Jan 6, 2009 at 7:19 PM, Danny Mayer <mayer at ntp.isc.org> wrote
> to questions at lists.ntp.org and me:
> 
>> Not yet. It's on my list of things to complete in the near future. There
>> are two pieces that need to be changed and one of them may be tricky
>> though I seem to remember that Martin had put something together to help
>> with this since we need to support people without IPv6 support and don't
>> have getaddrinfo() and friends available. getaddinfo() is necessary for
>> IPv6 support. Now's the time to get that in.
> 
> It sounds like late-binding the required syscalls/APIs with LoadModule
> and GetProcAddress is in order.  One way to minimize the source
> disturbance when late-binding is to provide your own wrapper
> implementations for each function and use a macro to redirect ntp's
> calls to the conditionally-available functions through the
> corresponding runtime-binding wrappers.  In this case Microsoft has
> already done the legwork, including support for the Windows 2000 IPv6
> download (which implements these in a different DLL than WinXP and
> later).  Quoting from their getaddrinfo documentation at
> http://msdn.microsoft.com/en-us/library/ms738520(VS.85).aspx
> 
> ---------------- begin quote
> The getaddrinfo function was added to the Ws2_32.dll on Windows XP and
> later. To execute an application that uses this function on earlier
> versions of Windows (Windows 2000, Windows NT, and Windows Me/98/95),
> then you need to include the Ws2tcpip.h and Wspiapi.h files. When the
> Wspiapi.h include file is added, the getaddrinfo function is defined
> to the WspiapiGetAddrInfo inline function in the Wspiapi.h file. At
> runtime, the WspiapiGetAddrInfo function is implemented in such a way
> that if the Ws2_32.dll or the Wship6.dll (the file containing
> getaddrinfo in the IPv6 Technology Preview for Windows 2000) does not
> include getaddrinfo, then a version of getaddrinfo is implemented
> inline based on code in the Wspiapi.h header file. This inline code
> will be used on older Windows platforms that do not natively support
> the getaddrinfo function.
> The IPv6 protocol is supported on Windows 2000 when the IPv6
> Technology Preview for Windows 2000 is installed. Otherwise
> getaddrinfo support on versions of Windows earlier than Windows XP is
> limited to handling IPv4 name resolution.
> ---------------- end quote
> 
> That sounds pretty darned painless, I hope it is indeed that easy for
> you.  Now, ask me why I care about IPv6 when it'll apparently be years
> before my IPv6 service isn't tunnelled over IPv4 using one lovely hack
> or another guaranteed to add overhead and latency.  I don't have a
> good answer.  I just want to break and enter into a few ipmasq and NAT
> pioneers' homes and disable every telephone ringer.
> 
> Dave Hart
> 
> _______________________________________________
> questions mailing list
> questions at lists.ntp.org
> https://lists.ntp.org/mailman/listinfo/questions
> 
> 




More information about the questions mailing list