Re: SIOCGIFCONF still not working

Andreas Jaeger (aj@arthur.rhein-neckar.de)
24 Aug 1999 07:06:23 +0200


>>>>> Ulrich Drepper writes:

> Some time ago it was reported here the SIOCGIFCONF is not working and
> I thing Davem said he'll fix it. Well, I have 2.3.14 and it still
> does not work. A few functions, and soon more, in glibc depend on
> this.

> The symptoms are that only one interfaec is reported. You call

> struct ifconf ifc;
> ifc.ifc_buf = NULL;
> ifc.ifc_len = 0;
> ioctl (fd, SIOCGIFCONF, &ifc);

> where fd is an open socket and you get in ifc_len the result 12 (which
> means, room for exactly one ifconf entry).

> Could somebody please look at this? I really want to finish the IPv6
> support.

> Thanks,

Here's a patch. The problem is the following change in
net/ipv4/devinet (early 2.3.x):
- struct ifreq ifr;
+ struct ifreq *ifr = (struct ifreq *) buf;

--- net/ipv4/devinet.c.~1~ Thu Jun 10 07:54:44 1999
+++ net/ipv4/devinet.c Fri Jun 11 09:17:34 1999
@@ -615,10 +615,10 @@

for ( ; ifa; ifa = ifa->ifa_next) {
if (!ifr) {
- done += sizeof(ifr);
+ done += sizeof(struct ifreq);
continue;
}
- if (len < (int) sizeof(ifr))
+ if (len < (int) sizeof(struct ifreq))
return done;
memset(ifr, 0, sizeof(struct ifreq));
if (ifa->ifa_label)

Could this please added to Linux 2.3.15?

Thanks,
Andreas

-- 
 Andreas Jaeger   aj@arthur.rhein-neckar.de    jaeger@informatik.uni-kl.de
  for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/