version 1.12, 1997/06/29 08:45:23 |
version 1.13, 1997/06/29 20:18:03 |
|
|
#include <net/route.h> |
#include <net/route.h> |
#undef _KERNEL |
#undef _KERNEL |
#include <netinet/in.h> |
#include <netinet/in.h> |
|
#include <arpa/inet.h> |
|
|
#include <netns/ns.h> |
#include <netns/ns.h> |
|
|
|
|
kget(rn, rnode); |
kget(rn, rnode); |
if (rnode.rn_b < 0) { |
if (rnode.rn_b < 0) { |
if (Aflag) |
if (Aflag) |
printf("%-8.8x ", rn); |
printf("%-8.8lx ", rn); |
if (rnode.rn_flags & RNF_ROOT) { |
if (rnode.rn_flags & RNF_ROOT) { |
if (Aflag) |
if (Aflag) |
printf("(root node)%s", |
printf("(root node)%s", |
|
|
0, 44); |
0, 44); |
putchar('\n'); |
putchar('\n'); |
} |
} |
if (rn = rnode.rn_dupedkey) |
if ((rn = rnode.rn_dupedkey)) |
goto again; |
goto again; |
} else { |
} else { |
if (Aflag && do_rtent) { |
if (Aflag && do_rtent) { |
printf("%-8.8x ", rn); |
printf("%-8.8lx ", rn); |
p_rtnode(); |
p_rtnode(); |
} |
} |
rn = rnode.rn_r; |
rn = rnode.rn_r; |
|
|
return; |
return; |
} else { |
} else { |
sprintf(nbuf, "(%d)", rnode.rn_b); |
sprintf(nbuf, "(%d)", rnode.rn_b); |
printf("%6.6s %8.8x : %8.8x", nbuf, rnode.rn_l, rnode.rn_r); |
printf("%6.6s %8.8lx : %8.8lx", nbuf, rnode.rn_l, rnode.rn_r); |
} |
} |
while (rm) { |
while (rm) { |
kget(rm, rmask); |
kget(rm, rmask); |
sprintf(nbuf, " %d refs, ", rmask.rm_refs); |
sprintf(nbuf, " %d refs, ", rmask.rm_refs); |
printf(" mk = %8.8x {(%d),%s", |
printf(" mk = %8.8lx {(%d),%s", |
rm, -1 - rmask.rm_b, rmask.rm_refs ? nbuf : " "); |
rm, -1 - rmask.rm_b, rmask.rm_refs ? nbuf : " "); |
p_sockaddr(kgetsa((struct sockaddr *)rmask.rm_mask), 0, -1); |
p_sockaddr(kgetsa((struct sockaddr *)rmask.rm_mask), 0, -1); |
putchar('}'); |
putchar('}'); |
if (rm = rmask.rm_mklist) |
if ((rm = rmask.rm_mklist)) |
printf(" ->"); |
printf(" ->"); |
} |
} |
putchar('\n'); |
putchar('\n'); |
|
|
else { |
else { |
p_sockaddr(sa, rtm->rtm_flags, 16); |
p_sockaddr(sa, rtm->rtm_flags, 16); |
if (sa->sa_len == 0) |
if (sa->sa_len == 0) |
sa->sa_len = sizeof(u_int32_t); |
sa->sa_len = sizeof(in_addr_t); |
sa = (struct sockaddr *)(sa->sa_len + (char *)sa); |
sa = (struct sockaddr *)(sa->sa_len + (char *)sa); |
p_sockaddr(sa, 0, 18); |
p_sockaddr(sa, 0, 18); |
} |
} |
|
|
p_sockaddr(sa, rt->rt_flags, WID_DST); |
p_sockaddr(sa, rt->rt_flags, WID_DST); |
p_sockaddr(kgetsa(rt->rt_gateway), RTF_HOST, WID_GW); |
p_sockaddr(kgetsa(rt->rt_gateway), RTF_HOST, WID_GW); |
p_flags(rt->rt_flags, "%-6.6s "); |
p_flags(rt->rt_flags, "%-6.6s "); |
printf("%6d %8d ", rt->rt_refcnt, rt->rt_use); |
printf("%6d %8ld ", rt->rt_refcnt, rt->rt_use); |
if (rt->rt_rmx.rmx_mtu) |
if (rt->rt_rmx.rmx_mtu) |
printf("%6d ", rt->rt_rmx.rmx_mtu); |
printf("%6ld ", rt->rt_rmx.rmx_mtu); |
else |
else |
printf("%6s ", "-"); |
printf("%6s ", "-"); |
if (rt->rt_ifp) { |
if (rt->rt_ifp) { |
|
|
|
|
char * |
char * |
routename(in) |
routename(in) |
u_int32_t in; |
in_addr_t in; |
{ |
{ |
register char *cp; |
register char *cp; |
static char line[MAXHOSTNAMELEN + 1]; |
static char line[MAXHOSTNAMELEN + 1]; |
|
|
*/ |
*/ |
char * |
char * |
netname(in, mask) |
netname(in, mask) |
u_int32_t in, mask; |
in_addr_t in, mask; |
{ |
{ |
char *cp = 0; |
char *cp = 0; |
static char line[MAXHOSTNAMELEN + 1]; |
static char line[MAXHOSTNAMELEN + 1]; |
struct netent *np = 0; |
struct netent *np = 0; |
u_int32_t net, subnetshift; |
in_addr_t net, subnetshift; |
|
|
in = ntohl(in); |
in = ntohl(in); |
mask = ntohl(mask); |
mask = ntohl(mask); |
|
|
register struct sockaddr_ns *sns = (struct sockaddr_ns*)sa; |
register struct sockaddr_ns *sns = (struct sockaddr_ns*)sa; |
struct ns_addr work; |
struct ns_addr work; |
union { union ns_net net_e; u_long long_e; } net; |
union { union ns_net net_e; u_long long_e; } net; |
u_short port; |
in_port_t port; |
static char mybuf[50], cport[10], chost[25]; |
static char mybuf[50], cport[10], chost[25]; |
char *host = ""; |
char *host = ""; |
register char *p; register u_char *q; |
register char *p; register u_char *q; |
|
|
register struct sockaddr_ipx *sipx = (struct sockaddr_ipx*)sa; |
register struct sockaddr_ipx *sipx = (struct sockaddr_ipx*)sa; |
struct ipx_addr work; |
struct ipx_addr work; |
union { union ipx_net net_e; u_long long_e; } net; |
union { union ipx_net net_e; u_long long_e; } net; |
u_short port; |
in_port_t port; |
static char mybuf[50], cport[10], chost[25]; |
static char mybuf[50], cport[10], chost[25]; |
char *host = ""; |
char *host = ""; |
register char *p; register u_char *q; |
register char *q; |
|
|
work = sipx->sipx_addr; |
work = sipx->sipx_addr; |
port = ntohs(work.ipx_port); |
port = ntohs(work.ipx_port); |
|
|
printf("%-15s ", inet_ntoa(sen1.sen_ip_dst)); |
printf("%-15s ", inet_ntoa(sen1.sen_ip_dst)); |
printf("%-15s %-5u %-5u ", inet_ntoa(sen2.sen_ip_dst), |
printf("%-15s %-5u %-5u ", inet_ntoa(sen2.sen_ip_dst), |
sen1.sen_dport, sen1.sen_proto); |
sen1.sen_dport, sen1.sen_proto); |
printf("%-15s %08x %-u\n", inet_ntoa(sen3.sen_ipsp_dst), |
printf("%-15s %08x %-lu\n", inet_ntoa(sen3.sen_ipsp_dst), |
ntohl(sen3.sen_ipsp_spi), rt->rt_use); |
ntohl(sen3.sen_ipsp_spi), rt->rt_use); |
} |
} |
|
|