[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