patch-1.3.68 linux/net/core/dev.c
Next file: linux/net/core/net_alias.c
Previous file: linux/net/ax25/ax25_timer.c
Back to the patch index
Back to the overall index
- Lines: 51
- Date:
Wed Feb 21 08:33:25 1996
- Orig file:
v1.3.67/linux/net/core/dev.c
- Orig date:
Wed Feb 14 14:37:19 1996
diff -u --recursive --new-file v1.3.67/linux/net/core/dev.c linux/net/core/dev.c
@@ -43,6 +43,8 @@
* on a Sparc.
* Bjorn Ekwall : Added KERNELD hack.
* Alan Cox : Cleaned up the backlog initialise.
+ * Craig Metz : SIOCGIFCONF fix if space for under
+ * 1 device.
*
*/
@@ -214,8 +216,15 @@
extern __inline__ void dev_load(const char *name)
{
- if(!dev_get(name))
- request_module(name);
+ char *sptr;
+
+ if(!dev_get(name)) {
+#ifdef CONFIG_NET_ALIAS
+ for (sptr=name ; *sptr ; sptr++) if(*sptr==':') break;
+ if (!(*sptr && *(sptr+1)))
+#endif
+ request_module(name);
+ }
}
#endif
@@ -788,17 +797,18 @@
{
if(!(dev->flags & IFF_UP)) /* Downed devices don't count */
continue;
- memset(&ifr, 0, sizeof(struct ifreq));
- strcpy(ifr.ifr_name, dev->name);
- (*(struct sockaddr_in *) &ifr.ifr_addr).sin_family = dev->family;
- (*(struct sockaddr_in *) &ifr.ifr_addr).sin_addr.s_addr = dev->pa_addr;
-
/*
* Have we run out of space here ?
*/
if (len < sizeof(struct ifreq))
break;
+
+ memset(&ifr, 0, sizeof(struct ifreq));
+ strcpy(ifr.ifr_name, dev->name);
+ (*(struct sockaddr_in *) &ifr.ifr_addr).sin_family = dev->family;
+ (*(struct sockaddr_in *) &ifr.ifr_addr).sin_addr.s_addr = dev->pa_addr;
+
/*
* Write this block to the caller's space.
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this