mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 07:26:15 +01:00
W32: Bump target NT version to 0x601 (7 or newer)
Also remove now-unnecessary if_nametoindex() implementation (the HAVE_IF_NAMETOINDEX configure check didn't work correctly, it turned out), which prevents glib from building. if_nametoindex() is available in lphlpapi since Vista[1], so we don't need a compatibility function for it anymore, as Windows 7 is the new minimally-required version. [1] https://msdn.microsoft.com/en-us/library/windows/desktop/bb408409(v=vs.85).aspx https://bugzilla.gnome.org/show_bug.cgi?id=788180
This commit is contained in:
parent
b444ae0de2
commit
6abdc06da6
@ -144,7 +144,7 @@ case "$host" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_DEFINE([_WIN32_WINNT], [0x0501], [Target the Windows XP API])
|
AC_DEFINE([_WIN32_WINNT], [0x0601], [Target the Windows 7 API])
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
glib_native_win32=no
|
glib_native_win32=no
|
||||||
|
@ -2155,63 +2155,6 @@ g_socket_bind (GSocket *socket,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32)
|
|
||||||
static guint
|
|
||||||
if_nametoindex (const gchar *iface)
|
|
||||||
{
|
|
||||||
PIP_ADAPTER_ADDRESSES addresses = NULL, p;
|
|
||||||
gulong addresses_len = 0;
|
|
||||||
guint idx = 0;
|
|
||||||
DWORD res;
|
|
||||||
|
|
||||||
if (ws2funcs.pIfNameToIndex != NULL)
|
|
||||||
return ws2funcs.pIfNameToIndex (iface);
|
|
||||||
|
|
||||||
res = GetAdaptersAddresses (AF_UNSPEC, 0, NULL, NULL, &addresses_len);
|
|
||||||
if (res != NO_ERROR && res != ERROR_BUFFER_OVERFLOW)
|
|
||||||
{
|
|
||||||
if (res == ERROR_NO_DATA)
|
|
||||||
errno = ENXIO;
|
|
||||||
else
|
|
||||||
errno = EINVAL;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
addresses = g_malloc (addresses_len);
|
|
||||||
res = GetAdaptersAddresses (AF_UNSPEC, 0, NULL, addresses, &addresses_len);
|
|
||||||
|
|
||||||
if (res != NO_ERROR)
|
|
||||||
{
|
|
||||||
g_free (addresses);
|
|
||||||
if (res == ERROR_NO_DATA)
|
|
||||||
errno = ENXIO;
|
|
||||||
else
|
|
||||||
errno = EINVAL;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
p = addresses;
|
|
||||||
while (p)
|
|
||||||
{
|
|
||||||
if (strcmp (p->AdapterName, iface) == 0)
|
|
||||||
{
|
|
||||||
idx = p->IfIndex;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p = p->Next;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p == NULL)
|
|
||||||
errno = ENXIO;
|
|
||||||
|
|
||||||
g_free (addresses);
|
|
||||||
|
|
||||||
return idx;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define HAVE_IF_NAMETOINDEX 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
g_socket_multicast_group_operation (GSocket *socket,
|
g_socket_multicast_group_operation (GSocket *socket,
|
||||||
GInetAddress *group,
|
GInetAddress *group,
|
||||||
|
Loading…
Reference in New Issue
Block a user