mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 12:59:21 +08:00
Cygwin: net: Make if_nametoindex, etc. consistent with if_nameindex.
Currently, if_nametoindex() and if_indextoname() handle interface names such as "ethernet_32777", while if_nameindex() returns the names such as "{5AF7ACD0-D52E-4DFC-A4D0-54D3E6D6B2AC}". This patch unifies the interface names to the latter. Fixes: c356901f0d69 ("Rename if_indextoname to cygwin_if_indextoname (analag for if_nametoindex)") Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
parent
aa22a43ec0
commit
aa392df06b
@ -462,8 +462,6 @@ LoadDLLfunc (GetNetworkParams, iphlpapi)
|
||||
LoadDLLfunc (GetTcpTable, iphlpapi)
|
||||
LoadDLLfunc (GetTcp6Table, iphlpapi)
|
||||
LoadDLLfunc (GetUdpTable, iphlpapi)
|
||||
LoadDLLfunc (if_indextoname, iphlpapi)
|
||||
LoadDLLfunc (if_nametoindex, iphlpapi)
|
||||
|
||||
LoadDLLfuncEx2 (DiscardVirtualMemory, kernel32, 1, 127)
|
||||
LoadDLLfuncEx (ClosePseudoConsole, kernel32, 1)
|
||||
|
@ -2001,13 +2001,40 @@ get_ifconf (struct ifconf *ifc, int what)
|
||||
extern "C" unsigned
|
||||
cygwin_if_nametoindex (const char *name)
|
||||
{
|
||||
return (unsigned) ::if_nametoindex (name);
|
||||
PIP_ADAPTER_ADDRESSES pa0 = NULL, pap;
|
||||
if (get_adapters_addresses (&pa0, AF_UNSPEC))
|
||||
for (pap = pa0; pap; pap = pap->Next)
|
||||
if (strcmp (name, pap->AdapterName) == 0)
|
||||
{
|
||||
free (pa0);
|
||||
return pap->IfIndex;
|
||||
}
|
||||
if (pa0)
|
||||
free (pa0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" char *
|
||||
cygwin_if_indextoname (unsigned ifindex, char *ifname)
|
||||
{
|
||||
return ::if_indextoname (ifindex, ifname);
|
||||
if (ifindex == 0 || ifname == NULL)
|
||||
{
|
||||
set_errno (ENXIO);
|
||||
return NULL;
|
||||
}
|
||||
PIP_ADAPTER_ADDRESSES pa0 = NULL, pap;
|
||||
if (get_adapters_addresses (&pa0, AF_UNSPEC))
|
||||
for (pap = pa0; pap; pap = pap->Next)
|
||||
if (ifindex == pap->IfIndex)
|
||||
{
|
||||
strcpy (ifname, pap->AdapterName);
|
||||
free (pa0);
|
||||
return ifname;
|
||||
}
|
||||
if (pa0)
|
||||
free (pa0);
|
||||
set_errno (ENXIO);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
extern "C" struct if_nameindex *
|
||||
|
@ -3,3 +3,6 @@ Bug Fixes
|
||||
|
||||
- Fix exit code for non-cygwin process running in console. The bug
|
||||
was introduced in 3.5.0.
|
||||
|
||||
- Make the interface names handled by if_nametoindex() and if_indextoname()
|
||||
consistent with that of if_nameindex().
|
||||
|
Loading…
x
Reference in New Issue
Block a user