* fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
* net.cc (get_2k_ifconf): Ditto. (get_nt_ifconf): Fake SIOCGIFINDEX. (get_95_ifconf): Ditto. (get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems not supporting IP Helper Lib. * include/asm/socket.h (SIOCGIFINDEX): Define. * include/cygwin/if.h (struct ifreq): Add member for interface index. (ifr_ifindex): Define.
This commit is contained in:
@ -1299,6 +1299,9 @@ get_2k_ifconf (struct ifconf *ifc, int what)
|
||||
case SIOCGIFMTU:
|
||||
ifr->ifr_mtu = ifrow->dwMtu;
|
||||
break;
|
||||
case SIOCGIFINDEX:
|
||||
ifr->ifr_ifindex = ifrow->dwIndex;
|
||||
break;
|
||||
}
|
||||
++cnt;
|
||||
if ((caddr_t)++ ifr >
|
||||
@ -1461,6 +1464,9 @@ get_nt_ifconf (struct ifconf *ifc, int what)
|
||||
case SIOCGIFMTU:
|
||||
ifr->ifr_mtu = 1500;
|
||||
break;
|
||||
case SIOCGIFINDEX:
|
||||
ifr->ifr_ifindex = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1503,6 +1509,9 @@ get_nt_ifconf (struct ifconf *ifc, int what)
|
||||
case SIOCGIFMTU:
|
||||
ifr->ifr_mtu = 1500;
|
||||
break;
|
||||
case SIOCGIFINDEX:
|
||||
ifr->ifr_ifindex = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
++cnt;
|
||||
@ -1638,6 +1647,9 @@ get_95_ifconf (struct ifconf *ifc, int what)
|
||||
case SIOCGIFMTU:
|
||||
ifr->ifr_mtu = 1500;
|
||||
break;
|
||||
case SIOCGIFINDEX:
|
||||
ifr->ifr_ifindex = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1747,6 +1759,9 @@ get_ifconf (struct ifconf *ifc, int what)
|
||||
/* Default value for MS TCP Loopback interface. */
|
||||
ifr->ifr_mtu = 1520;
|
||||
break;
|
||||
case SIOCGIFINDEX:
|
||||
ifr->ifr_ifindex = -1;
|
||||
break;
|
||||
default:
|
||||
set_errno (EINVAL);
|
||||
return -1;
|
||||
|
Reference in New Issue
Block a user