version 1.67, 2005/03/25 17:01:04 |
version 1.68, 2005/03/30 08:23:47 |
|
|
{ RTF_PROTO2, '2' }, |
{ RTF_PROTO2, '2' }, |
{ RTF_PROTO3, '3' }, |
{ RTF_PROTO3, '3' }, |
{ RTF_CLONED, 'c' }, |
{ RTF_CLONED, 'c' }, |
{ RTF_SOURCE, 's' }, |
|
{ 0 } |
{ 0 } |
}; |
}; |
|
|
|
|
static void p_flags(int, char *); |
static void p_flags(int, char *); |
static void p_rtentry(struct rtentry *); |
static void p_rtentry(struct rtentry *); |
static void encap_print(struct rtentry *); |
static void encap_print(struct rtentry *); |
static void sa_src2dst(struct sockaddr *); |
|
|
|
/* |
/* |
* Print routing tables. |
* Print routing tables. |
|
|
|
|
if (Aflag) |
if (Aflag) |
printf("%-*.*s ", PLEN, PLEN, "Address"); |
printf("%-*.*s ", PLEN, PLEN, "Address"); |
if (Sflag) |
printf("%-*.*s %-*.*s %-6.6s %6.6s %6.6s %6.6s %s\n", |
printf("%-*.*s ", |
WID_DST(af), WID_DST(af), "Destination", |
WID_DST(af), WID_DST(af), "Source"); |
|
printf("%-*.*s ", |
|
WID_DST(af), WID_DST(af), "Destination"); |
|
printf("%-*.*s %-6.6s %6.6s %6.6s %6.6s %s\n", |
|
WID_GW(af), WID_GW(af), "Gateway", |
WID_GW(af), WID_GW(af), "Gateway", |
"Flags", "Refs", "Use", "Mtu", "Interface"); |
"Flags", "Refs", "Use", "Mtu", "Interface"); |
} |
} |
|
|
} else |
} else |
mask = 0; |
mask = 0; |
|
|
if (Sflag && sa->sa_family == AF_INET) { |
|
sa_src2dst(sa); |
|
sa_src2dst(mask); |
|
p_sockaddr(sa, mask, rt->rt_flags, WID_DST(sa->sa_family)); |
|
sa_src2dst(sa); |
|
sa_src2dst(mask); |
|
} |
|
p_sockaddr(sa, mask, rt->rt_flags, WID_DST(sa->sa_family)); |
p_sockaddr(sa, mask, rt->rt_flags, WID_DST(sa->sa_family)); |
p_sockaddr(kgetsa(rt->rt_gateway), 0, RTF_HOST, WID_GW(sa->sa_family)); |
p_sockaddr(kgetsa(rt->rt_gateway), 0, RTF_HOST, WID_GW(sa->sa_family)); |
p_flags(rt->rt_flags, "%-6.6s "); |
p_flags(rt->rt_flags, "%-6.6s "); |
|
|
case 'f': |
case 'f': |
*p += ('A' - 'a'); |
*p += ('A' - 'a'); |
break; |
break; |
} |
|
} |
|
|
|
void |
|
sa_src2dst(struct sockaddr *sa) |
|
{ |
|
struct sockaddr_rtin *rtin = satortin(sa); |
|
struct in_addr tmp; |
|
|
|
if (sa != NULL) { |
|
tmp = rtin->rtin_dst; |
|
rtin->rtin_dst = rtin->rtin_src; |
|
rtin->rtin_src = tmp; |
|
} |
} |
} |
} |