Shaun Jackman said:

This patch adds a CONFIG_FEATURE_CLEAN_UP stanza, and also adds an
ifdef around the SIOCGIFMAP call.
This commit is contained in:
Rob Landley 2005-05-03 21:30:26 +00:00
parent 60158cb93e
commit 93983040c5

View File

@ -888,6 +888,20 @@ static int sockets_open(int family)
return sfd; return sfd;
} }
#ifdef CONFIG_FEATURE_CLEAN_UP
static void sockets_close(void)
{
struct aftype **aft;
for (aft = aftypes; *aft != NULL; aft++) {
struct aftype *af = *aft;
if( af->fd != -1 ) {
close(af->fd);
af->fd = -1;
}
}
}
#endif
/* like strcmp(), but knows about numbers */ /* like strcmp(), but knows about numbers */
static int nstrcmp(const char *a, const char *b) static int nstrcmp(const char *a, const char *b)
{ {
@ -1223,17 +1237,13 @@ static int if_fetch(struct interface *ife)
} }
#endif #endif
#ifdef SIOCGIFMAP
strcpy(ifr.ifr_name, ifname); strcpy(ifr.ifr_name, ifname);
if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) if (ioctl(skfd, SIOCGIFMAP, &ifr) == 0)
memset(&ife->map, 0, sizeof(struct ifmap));
else
memcpy(&ife->map, &ifr.ifr_map, sizeof(struct ifmap));
strcpy(ifr.ifr_name, ifname);
if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0)
memset(&ife->map, 0, sizeof(struct ifmap));
else
ife->map = ifr.ifr_map; ife->map = ifr.ifr_map;
else
#endif
memset(&ife->map, 0, sizeof(struct ifmap));
#ifdef HAVE_TXQUEUELEN #ifdef HAVE_TXQUEUELEN
strcpy(ifr.ifr_name, ifname); strcpy(ifr.ifr_name, ifname);
@ -2078,6 +2088,8 @@ int display_interfaces(char *ifname)
/* Do we have to show the current setup? */ /* Do we have to show the current setup? */
status = if_print(ifname); status = if_print(ifname);
close(skfd); #ifdef CONFIG_FEATURE_CLEAN_UP
sockets_close();
#endif
exit(status < 0); exit(status < 0);
} }