[BusyBox] bug#1210: BusyBox] bug#1210: route does not show all routes
Vladimir N. Oleynik
dzo at simtreas.ru
Mon Aug 27 11:15:03 UTC 2001
I wrote:
> > > All changes in displayroute() must remove.
> > >
> > > -} else {
> > > - nl++;
> > > - continue;
> > > }
> >
>
> I think it is necessary to show all the table from/proc and to add not getting
> types (R D! and M).
>
> #define RTF_UP 0x0001 /* route usable */
> #define RTF_GATEWAY 0x0002 /* destination is a gateway */
> #define RTF_HOST 0x0004 /* host entry (net otherwise) */
> #define RTF_REINSTATE 0x0008 /* reinstate route after tmout */
> #define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */
> #define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */
> #define RTF_MTU 0x0040 /* specific MTU for this route */
> #ifndef RTF_MSS
> #define RTF_MSS RTF_MTU /* Compatibility :-( */
> #endif
> #define RTF_WINDOW 0x0080 /* per route window clamping */
> #define RTF_IRTT 0x0100 /* Initial round trip time */
> #define RTF_REJECT 0x0200 /* Reject route */
>
>
> I tomorrow shall add this all. Thanks for stimul ;)
NOW! :-)
--w
vodz
-------------- next part --------------
--- route.c~ Fri Aug 24 02:14:31 2001
+++ route.c Mon Aug 27 21:02:50 2001
@@ -348,6 +348,23 @@
return EXIT_SUCCESS;
}
+#ifndef RTF_UP
+/* Keep this in sync with /usr/src/linux/include/linux/route.h */
+#define RTF_UP 0x0001 /* route usable */
+#define RTF_GATEWAY 0x0002 /* destination is a gateway */
+#define RTF_HOST 0x0004 /* host entry (net otherwise) */
+#define RTF_REINSTATE 0x0008 /* reinstate route after tmout */
+#define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */
+#define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */
+#define RTF_MTU 0x0040 /* specific MTU for this route */
+#ifndef RTF_MSS
+#define RTF_MSS RTF_MTU /* Compatibility :-( */
+#endif
+#define RTF_WINDOW 0x0080 /* per route window clamping */
+#define RTF_IRTT 0x0100 /* Initial round trip time */
+#define RTF_REJECT 0x0200 /* Reject route */
+#endif
+
static void displayroutes(void)
{
char buff[256];
@@ -374,21 +391,25 @@
&d, &g, &flgs, &ref, &use, &metric, &m)!=7) {
error_msg_and_die( "Unsuported kernel route format\n");
}
- if(nl==1) {
+ if(nl==1)
printf("Kernel IP routing table\n"
"Destination Gateway Genmask Flags Metric Ref Use Iface\n");
- } else {
- nl++;
- continue;
- }
ifl = 0; /* parse flags */
- if(flgs&1)
+ if(flgs&RTF_UP)
flags[ifl++]='U';
- if(flgs&2)
+ if(flgs&RTF_GATEWAY)
flags[ifl++]='G';
- if(flgs&4)
+ if(flgs&RTF_HOST)
+ flags[ifl++]='H';
+ if(flgs&RTF_REINSTATE)
+ flags[ifl++]='R';
+ if(flgs&RTF_DYNAMIC)
+ flags[ifl++]='D';
+ if(flgs&RTF_MODIFIED)
flags[ifl++]='H';
+ if(flgs&RTF_REJECT)
+ flags[ifl++]='!';
flags[ifl]=0;
dest.s_addr = d;
gw.s_addr = g;
More information about the busybox
mailing list