aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/route.c39
-rw-r--r--route.c39
2 files changed, 60 insertions, 18 deletions
diff --git a/networking/route.c b/networking/route.c
index 8e12a3f2e..bb88307a8 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -15,7 +15,7 @@
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*
- * $Id: route.c,v 1.11 2001/08/23 22:05:33 andersen Exp $
+ * $Id: route.c,v 1.12 2001/08/27 17:57:27 andersen Exp $
*
* displayroute() code added by Vladimir N. Oleynik <dzo@simtreas.ru>
* adjustments by Larry Doolittle <LRDoolittle@lbl.gov>
@@ -345,6 +345,23 @@ INET_setroute(int action, int options, char **args)
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];
@@ -371,21 +388,25 @@ static void displayroutes(void)
&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;
diff --git a/route.c b/route.c
index 8e12a3f2e..bb88307a8 100644
--- a/route.c
+++ b/route.c
@@ -15,7 +15,7 @@
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*
- * $Id: route.c,v 1.11 2001/08/23 22:05:33 andersen Exp $
+ * $Id: route.c,v 1.12 2001/08/27 17:57:27 andersen Exp $
*
* displayroute() code added by Vladimir N. Oleynik <dzo@simtreas.ru>
* adjustments by Larry Doolittle <LRDoolittle@lbl.gov>
@@ -345,6 +345,23 @@ INET_setroute(int action, int options, char **args)
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];
@@ -371,21 +388,25 @@ static void displayroutes(void)
&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;