summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog9
-rw-r--r--winsup/cygwin/fhandler_procnet.cc16
-rw-r--r--winsup/cygwin/net.cc8
3 files changed, 21 insertions, 12 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 64bf80ce4..70501713d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,14 @@
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
+ * fhandler_procnet.cc (format_procnet_ifinet6): Use sprintf rather than
+ __small_sprintf.
+ * net.cc (if_nametoindex): Prefer IPv6IfIndex over IfIndex for
+ consistency with /proc/net/if_inet6.
+ (if_indextoname): Ditto.
+ (if_nameindex): Ditto.
+
+2008-06-10 Corinna Vinschen <corinna@vinschen.de>
+
* mount.cc (mount_info::from_fstab): Read sizeof (buf) - 2 bytes.
Add code to handle overly long lines.
diff --git a/winsup/cygwin/fhandler_procnet.cc b/winsup/cygwin/fhandler_procnet.cc
index 82c5f0a84..f9fd94707 100644
--- a/winsup/cygwin/fhandler_procnet.cc
+++ b/winsup/cygwin/fhandler_procnet.cc
@@ -260,14 +260,14 @@ format_procnet_ifinet6 (char *&filebuf)
filesize += sprintf (filebuf + filesize, "%04x",
ntohs (sin6->sin6_addr.s6_addr16[i]));
filebuf[filesize++] = ' ';
- filesize += __small_sprintf (filebuf + filesize,
- "%02x %02x %02x %02x %s\n",
- pap->IfIndex ?: pap->Ipv6IfIndex,
- ip_addr_prefix (pua, pap->FirstPrefix),
- ((struct sockaddr_in6 *)
- pua->Address.lpSockaddr)->sin6_scope_id,
- pua->DadState,
- pap->AdapterName);
+ filesize += sprintf (filebuf + filesize,
+ "%02lx %02x %02x %02x %s\n",
+ pap->IfIndex ?: pap->Ipv6IfIndex,
+ ip_addr_prefix (pua, pap->FirstPrefix),
+ ((struct sockaddr_in6 *)
+ pua->Address.lpSockaddr)->sin6_scope_id,
+ pua->DadState,
+ pap->AdapterName);
}
out:
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 3fda2d656..d8d426b98 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -2048,7 +2048,7 @@ if_nametoindex (const char *name)
for (pap = pa0; pap; pap = pap->Next)
if (strcasematch (lname, pap->AdapterName))
{
- index = pap->IfIndex;
+ index = pap->Ipv6IfIndex ?: pap->IfIndex;
break;
}
free (pa0);
@@ -2070,7 +2070,7 @@ if_indextoname (unsigned ifindex, char *ifname)
&& get_adapters_addresses (&pa0, AF_UNSPEC))
{
for (pap = pa0; pap; pap = pap->Next)
- if (ifindex == pap->IfIndex)
+ if (ifindex == (pap->Ipv6IfIndex ?: pap->IfIndex))
{
name = strcpy (ifname, pap->AdapterName);
break;
@@ -2110,9 +2110,9 @@ if_nameindex (void)
for (pap = pa0, cnt = 0; pap; pap = pap->Next)
{
for (int i = 0; i < cnt; ++i)
- if (iflist[i].if_index == (pap->IfIndex ?: pap->Ipv6IfIndex))
+ if (iflist[i].if_index == (pap->Ipv6IfIndex ?: pap->IfIndex))
goto outer_loop;
- iflist[cnt].if_index = pap->IfIndex ?: pap->Ipv6IfIndex;
+ iflist[cnt].if_index = pap->Ipv6IfIndex ?: pap->IfIndex;
strcpy (iflist[cnt].if_name = ifnamelist[cnt], pap->AdapterName);
++cnt;
outer_loop: