Patch from Eric Norum <eric@cls.usask.ca>. Comments follow:

The old system would panic when the loopback interface was included as
    part of the network initialation structures.  With the printf you get an
    message, but the interface is still properly initialized.
This commit is contained in:
Joel Sherrill
1999-10-04 13:51:22 +00:00
parent cb6208444b
commit 6fca2f5568
8 changed files with 20 additions and 12 deletions

View File

@@ -809,7 +809,7 @@ rtems_bsdnet_setup (void)
broadcast.sin_addr.s_addr = address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
memcpy (&ifreq.ifr_broadaddr, &broadcast, sizeof broadcast);
if (ioctl (s, SIOCSIFBRDADDR, &ifreq) < 0)
rtems_panic ("Can't set %s broadcast address: %s", ifp->name, strerror (errno));
printf ("Can't set %s broadcast address: %s\n", ifp->name, strerror (errno));
}
/*

View File

@@ -37,7 +37,7 @@ rtems_bsdnet_show_if_stats (void)
{
struct ifnet *ifp;
struct ifaddr *ifa;
unsigned int bit, flags;
unsigned short bit, flags;
int printed;
printf ("************ INTERFACE STATISTICS ************\n");
@@ -57,8 +57,9 @@ rtems_bsdnet_show_if_stats (void)
printf ("Flags:");
for (bit = 1, flags = ifp->if_flags ; flags ; bit <<= 1) {
char *cp;
char xbuf[20];
switch (flags & bit) {
default: cp = NULL; break;
case 0: cp = NULL; break;
case IFF_UP: cp = "Up"; break;
case IFF_BROADCAST: cp = "Broadcast"; break;
case IFF_DEBUG: cp = "Debug"; break;
@@ -74,6 +75,7 @@ rtems_bsdnet_show_if_stats (void)
case IFF_LINK1: cp = "Link1"; break;
case IFF_LINK2: cp = "Link2"; break;
case IFF_MULTICAST: cp = "Multicast"; break;
default: sprintf (xbuf, "%#x", bit); cp = xbuf; break;
}
if (cp) {
flags &= ~bit;

View File

@@ -809,7 +809,7 @@ rtems_bsdnet_setup (void)
broadcast.sin_addr.s_addr = address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
memcpy (&ifreq.ifr_broadaddr, &broadcast, sizeof broadcast);
if (ioctl (s, SIOCSIFBRDADDR, &ifreq) < 0)
rtems_panic ("Can't set %s broadcast address: %s", ifp->name, strerror (errno));
printf ("Can't set %s broadcast address: %s\n", ifp->name, strerror (errno));
}
/*

View File

@@ -37,7 +37,7 @@ rtems_bsdnet_show_if_stats (void)
{
struct ifnet *ifp;
struct ifaddr *ifa;
unsigned int bit, flags;
unsigned short bit, flags;
int printed;
printf ("************ INTERFACE STATISTICS ************\n");
@@ -57,8 +57,9 @@ rtems_bsdnet_show_if_stats (void)
printf ("Flags:");
for (bit = 1, flags = ifp->if_flags ; flags ; bit <<= 1) {
char *cp;
char xbuf[20];
switch (flags & bit) {
default: cp = NULL; break;
case 0: cp = NULL; break;
case IFF_UP: cp = "Up"; break;
case IFF_BROADCAST: cp = "Broadcast"; break;
case IFF_DEBUG: cp = "Debug"; break;
@@ -74,6 +75,7 @@ rtems_bsdnet_show_if_stats (void)
case IFF_LINK1: cp = "Link1"; break;
case IFF_LINK2: cp = "Link2"; break;
case IFF_MULTICAST: cp = "Multicast"; break;
default: sprintf (xbuf, "%#x", bit); cp = xbuf; break;
}
if (cp) {
flags &= ~bit;

View File

@@ -809,7 +809,7 @@ rtems_bsdnet_setup (void)
broadcast.sin_addr.s_addr = address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
memcpy (&ifreq.ifr_broadaddr, &broadcast, sizeof broadcast);
if (ioctl (s, SIOCSIFBRDADDR, &ifreq) < 0)
rtems_panic ("Can't set %s broadcast address: %s", ifp->name, strerror (errno));
printf ("Can't set %s broadcast address: %s\n", ifp->name, strerror (errno));
}
/*

View File

@@ -37,7 +37,7 @@ rtems_bsdnet_show_if_stats (void)
{
struct ifnet *ifp;
struct ifaddr *ifa;
unsigned int bit, flags;
unsigned short bit, flags;
int printed;
printf ("************ INTERFACE STATISTICS ************\n");
@@ -57,8 +57,9 @@ rtems_bsdnet_show_if_stats (void)
printf ("Flags:");
for (bit = 1, flags = ifp->if_flags ; flags ; bit <<= 1) {
char *cp;
char xbuf[20];
switch (flags & bit) {
default: cp = NULL; break;
case 0: cp = NULL; break;
case IFF_UP: cp = "Up"; break;
case IFF_BROADCAST: cp = "Broadcast"; break;
case IFF_DEBUG: cp = "Debug"; break;
@@ -74,6 +75,7 @@ rtems_bsdnet_show_if_stats (void)
case IFF_LINK1: cp = "Link1"; break;
case IFF_LINK2: cp = "Link2"; break;
case IFF_MULTICAST: cp = "Multicast"; break;
default: sprintf (xbuf, "%#x", bit); cp = xbuf; break;
}
if (cp) {
flags &= ~bit;

View File

@@ -809,7 +809,7 @@ rtems_bsdnet_setup (void)
broadcast.sin_addr.s_addr = address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
memcpy (&ifreq.ifr_broadaddr, &broadcast, sizeof broadcast);
if (ioctl (s, SIOCSIFBRDADDR, &ifreq) < 0)
rtems_panic ("Can't set %s broadcast address: %s", ifp->name, strerror (errno));
printf ("Can't set %s broadcast address: %s\n", ifp->name, strerror (errno));
}
/*

View File

@@ -37,7 +37,7 @@ rtems_bsdnet_show_if_stats (void)
{
struct ifnet *ifp;
struct ifaddr *ifa;
unsigned int bit, flags;
unsigned short bit, flags;
int printed;
printf ("************ INTERFACE STATISTICS ************\n");
@@ -57,8 +57,9 @@ rtems_bsdnet_show_if_stats (void)
printf ("Flags:");
for (bit = 1, flags = ifp->if_flags ; flags ; bit <<= 1) {
char *cp;
char xbuf[20];
switch (flags & bit) {
default: cp = NULL; break;
case 0: cp = NULL; break;
case IFF_UP: cp = "Up"; break;
case IFF_BROADCAST: cp = "Broadcast"; break;
case IFF_DEBUG: cp = "Debug"; break;
@@ -74,6 +75,7 @@ rtems_bsdnet_show_if_stats (void)
case IFF_LINK1: cp = "Link1"; break;
case IFF_LINK2: cp = "Link2"; break;
case IFF_MULTICAST: cp = "Multicast"; break;
default: sprintf (xbuf, "%#x", bit); cp = xbuf; break;
}
if (cp) {
flags &= ~bit;