On 05/28/2015 12:41 PM, Kirk Allan wrote: > By default, IP addresses and prefixes will be derived from information > obtained by various calls and structures. IPv4 prefixes can be found > by matching the address to those returned by GetAdaptersInfo. IPv6 > prefixes can not be matched this way due to the unpredictable order of > entries. > > In Windows Visa/2008 guests and newer, it is possible to use inet_ntop()
s/Visa/Vista/ > and OnLinkPrefixLength to get IPv4 and IPv6 addresses and prefixes. Why the double spacing? > Setting –extra-cflags in the build configuration to Again, Unicode mdash looks odd. > ”- D_WIN32_WINNT-0x600 -DWINVER=0x600” or greater enables this functionality > for those guests. Setting –ectra-cflags is not required and if not used, s/ectra/extra/ > the default approach will be taken. > > Signed-off-by: Kirk Allan <kal...@suse.com> > --- > qga/commands-win32.c | 292 > ++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 290 insertions(+), 2 deletions(-) > + > +static char *guest_inet_ntop(int af, void *cp, char *buf, size_t len) > +{ > +#if (_WIN32_WINNT >= 0x0600) && defined(ARCH_x86_64) > + /* If built for 64 bit Windows Vista/2008 or newer, inet_ntop() is > + * available for use. Otherwise, do our best to derive it. > + */ > + return (char *)InetNtop(af, cp, buf, len); > +#else Are you sure glib doesn't provide some sort of inet_ntop wrapper that you could crib, instead of rolling your own? And if you must roll your own, do it as a separate patch from the rest of this work, possibly by copying from glibc or other existing implementation (with proper credits to the upstream source), rather than writing it from scratch. > + u_char *p; u_char is not a standard typedef; uint8_t is more common. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature