mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-28 03:27:46 +08:00
* 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:
parent
2fd167e6de
commit
835fc32a3a
@ -1,3 +1,15 @@
|
|||||||
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
|
* include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
|
||||||
|
@ -1419,6 +1419,7 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
|
|||||||
case SIOCGIFHWADDR:
|
case SIOCGIFHWADDR:
|
||||||
case SIOCGIFMETRIC:
|
case SIOCGIFMETRIC:
|
||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
|
case SIOCGIFINDEX:
|
||||||
{
|
{
|
||||||
ifc.ifc_len = 2048;
|
ifc.ifc_len = 2048;
|
||||||
ifc.ifc_buf = (char *) alloca (2048);
|
ifc.ifc_buf = (char *) alloca (2048);
|
||||||
@ -1469,6 +1470,9 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
|
|||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
ifr->ifr_mtu = ifrp->ifr_mtu;
|
ifr->ifr_mtu = ifrp->ifr_mtu;
|
||||||
break;
|
break;
|
||||||
|
case SIOCGIFINDEX:
|
||||||
|
ifr->ifr_ifindex = ifrp->ifr_ifindex;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* asm/socket.h
|
/* asm/socket.h
|
||||||
|
|
||||||
Copyright 1996, 1997, 1998, 2001 Red Hat, Inc.
|
Copyright 1996, 1997, 1998, 2001, 2005, 2007 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
@ -41,6 +41,7 @@ details. */
|
|||||||
#define SIOCGIFHWADDR _IOW('s', 105, struct ifreq) /* Get hw addr */
|
#define SIOCGIFHWADDR _IOW('s', 105, struct ifreq) /* Get hw addr */
|
||||||
#define SIOCGIFMETRIC _IOW('s', 106, struct ifreq) /* get metric */
|
#define SIOCGIFMETRIC _IOW('s', 106, struct ifreq) /* get metric */
|
||||||
#define SIOCGIFMTU _IOW('s', 107, struct ifreq) /* get MTU size */
|
#define SIOCGIFMTU _IOW('s', 107, struct ifreq) /* get MTU size */
|
||||||
|
#define SIOCGIFINDEX _IOW('s', 108, struct ifreq) /* get if index */
|
||||||
|
|
||||||
#define SOL_SOCKET 0xffff /* options for socket level */
|
#define SOL_SOCKET 0xffff /* options for socket level */
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* cygwin/if.h
|
/* cygwin/if.h
|
||||||
|
|
||||||
Copyright 1996, 2001 Red Hat, Inc.
|
Copyright 1996, 2001, 2007 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
@ -51,6 +51,7 @@ struct ifreq
|
|||||||
short ifru_flags;
|
short ifru_flags;
|
||||||
int ifru_metric;
|
int ifru_metric;
|
||||||
int ifru_mtu;
|
int ifru_mtu;
|
||||||
|
int ifru_ifindex;
|
||||||
} ifr_ifru;
|
} ifr_ifru;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -62,7 +63,7 @@ struct ifreq
|
|||||||
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
|
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
|
||||||
#define ifr_metric ifr_ifru.ifru_metric /* metric */
|
#define ifr_metric ifr_ifru.ifru_metric /* metric */
|
||||||
#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
|
#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
|
||||||
|
#define ifr_ifindex ifr_ifru.ifru_ifindex /* interface index */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Structure used in SIOCGIFCONF request.
|
* Structure used in SIOCGIFCONF request.
|
||||||
|
@ -1299,6 +1299,9 @@ get_2k_ifconf (struct ifconf *ifc, int what)
|
|||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
ifr->ifr_mtu = ifrow->dwMtu;
|
ifr->ifr_mtu = ifrow->dwMtu;
|
||||||
break;
|
break;
|
||||||
|
case SIOCGIFINDEX:
|
||||||
|
ifr->ifr_ifindex = ifrow->dwIndex;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
++cnt;
|
++cnt;
|
||||||
if ((caddr_t)++ ifr >
|
if ((caddr_t)++ ifr >
|
||||||
@ -1461,6 +1464,9 @@ get_nt_ifconf (struct ifconf *ifc, int what)
|
|||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
ifr->ifr_mtu = 1500;
|
ifr->ifr_mtu = 1500;
|
||||||
break;
|
break;
|
||||||
|
case SIOCGIFINDEX:
|
||||||
|
ifr->ifr_ifindex = -1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1503,6 +1509,9 @@ get_nt_ifconf (struct ifconf *ifc, int what)
|
|||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
ifr->ifr_mtu = 1500;
|
ifr->ifr_mtu = 1500;
|
||||||
break;
|
break;
|
||||||
|
case SIOCGIFINDEX:
|
||||||
|
ifr->ifr_ifindex = -1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++cnt;
|
++cnt;
|
||||||
@ -1638,6 +1647,9 @@ get_95_ifconf (struct ifconf *ifc, int what)
|
|||||||
case SIOCGIFMTU:
|
case SIOCGIFMTU:
|
||||||
ifr->ifr_mtu = 1500;
|
ifr->ifr_mtu = 1500;
|
||||||
break;
|
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. */
|
/* Default value for MS TCP Loopback interface. */
|
||||||
ifr->ifr_mtu = 1520;
|
ifr->ifr_mtu = 1520;
|
||||||
break;
|
break;
|
||||||
|
case SIOCGIFINDEX:
|
||||||
|
ifr->ifr_ifindex = -1;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user