From 6fca2f55680bf45aff1fbbdb5464571a53ab662f Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 4 Oct 1999 13:51:22 +0000 Subject: Patch from Eric Norum . 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. --- c/src/exec/libnetworking/rtems/rtems_glue.c | 2 +- c/src/exec/libnetworking/rtems/rtems_showifstat.c | 6 ++++-- c/src/lib/libnetworking/rtems/rtems_glue.c | 2 +- c/src/lib/libnetworking/rtems/rtems_showifstat.c | 6 ++++-- c/src/libnetworking/rtems/rtems_glue.c | 2 +- c/src/libnetworking/rtems/rtems_showifstat.c | 6 ++++-- cpukit/libnetworking/rtems/rtems_glue.c | 2 +- cpukit/libnetworking/rtems/rtems_showifstat.c | 6 ++++-- 8 files changed, 20 insertions(+), 12 deletions(-) diff --git a/c/src/exec/libnetworking/rtems/rtems_glue.c b/c/src/exec/libnetworking/rtems/rtems_glue.c index 69f2fcc040..f5a39b1448 100644 --- a/c/src/exec/libnetworking/rtems/rtems_glue.c +++ b/c/src/exec/libnetworking/rtems/rtems_glue.c @@ -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)); } /* diff --git a/c/src/exec/libnetworking/rtems/rtems_showifstat.c b/c/src/exec/libnetworking/rtems/rtems_showifstat.c index 9f9efc5ac2..20055517f6 100644 --- a/c/src/exec/libnetworking/rtems/rtems_showifstat.c +++ b/c/src/exec/libnetworking/rtems/rtems_showifstat.c @@ -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; diff --git a/c/src/lib/libnetworking/rtems/rtems_glue.c b/c/src/lib/libnetworking/rtems/rtems_glue.c index 69f2fcc040..f5a39b1448 100644 --- a/c/src/lib/libnetworking/rtems/rtems_glue.c +++ b/c/src/lib/libnetworking/rtems/rtems_glue.c @@ -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)); } /* diff --git a/c/src/lib/libnetworking/rtems/rtems_showifstat.c b/c/src/lib/libnetworking/rtems/rtems_showifstat.c index 9f9efc5ac2..20055517f6 100644 --- a/c/src/lib/libnetworking/rtems/rtems_showifstat.c +++ b/c/src/lib/libnetworking/rtems/rtems_showifstat.c @@ -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; diff --git a/c/src/libnetworking/rtems/rtems_glue.c b/c/src/libnetworking/rtems/rtems_glue.c index 69f2fcc040..f5a39b1448 100644 --- a/c/src/libnetworking/rtems/rtems_glue.c +++ b/c/src/libnetworking/rtems/rtems_glue.c @@ -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)); } /* diff --git a/c/src/libnetworking/rtems/rtems_showifstat.c b/c/src/libnetworking/rtems/rtems_showifstat.c index 9f9efc5ac2..20055517f6 100644 --- a/c/src/libnetworking/rtems/rtems_showifstat.c +++ b/c/src/libnetworking/rtems/rtems_showifstat.c @@ -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; diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c index 69f2fcc040..f5a39b1448 100644 --- a/cpukit/libnetworking/rtems/rtems_glue.c +++ b/cpukit/libnetworking/rtems/rtems_glue.c @@ -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)); } /* diff --git a/cpukit/libnetworking/rtems/rtems_showifstat.c b/cpukit/libnetworking/rtems/rtems_showifstat.c index 9f9efc5ac2..20055517f6 100644 --- a/cpukit/libnetworking/rtems/rtems_showifstat.c +++ b/cpukit/libnetworking/rtems/rtems_showifstat.c @@ -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; -- cgit v1.2.3