From 835fc32a3ae2bfcbb7c4b16dbbe3fc5906fd99d1 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Tue, 16 Jan 2007 12:01:36 +0000
Subject: 	* 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.

---
 winsup/cygwin/net.cc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

(limited to 'winsup/cygwin/net.cc')

diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index f70618d..13a1ee9 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -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;
-- 
cgit v1.1