[BACK]Return to route.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / netstat

Diff for /src/usr.bin/netstat/route.c between version 1.43 and 1.44

version 1.43, 2001/11/19 19:02:15 version 1.44, 2002/01/17 21:34:58
Line 197 
Line 197 
         case AF_INET6:          case AF_INET6:
                 afname = "Internet6";                  afname = "Internet6";
                 break;                  break;
 #endif  #endif
         case AF_NS:          case AF_NS:
                 afname = "XNS";                  afname = "XNS";
                 break;                  break;
Line 268 
Line 268 
         if (Aflag)          if (Aflag)
                 printf("%-*s ", PLEN, "Address");                  printf("%-*s ", PLEN, "Address");
         printf("%-18s %-5s %-18s %-5s %-5s %-22s\n",          printf("%-18s %-5s %-18s %-5s %-5s %-22s\n",
             "Source", "Port", "Destination",              "Source", "Port", "Destination",
             "Port", "Proto", "SA(Address/Proto/Type/Direction)");              "Port", "Proto", "SA(Address/Proto/Type/Direction)");
 }  }
   
Line 374 
Line 374 
                 printf("out of space\n");                  printf("out of space\n");
                 exit(1);                  exit(1);
         }          }
         if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {          if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {
                 perror("sysctl of routing table");                  perror("sysctl of routing table");
                 exit(1);                  exit(1);
         }          }
Line 476 
Line 476 
                         cp = netname6(sa6, NULL);                          cp = netname6(sa6, NULL);
                 break;                  break;
             }              }
 #endif  #endif
   
         case AF_NS:          case AF_NS:
                 cp = ns_print(sa);                  cp = ns_print(sa);
Line 485 
Line 485 
         case AF_IPX:          case AF_IPX:
                 cp = ipx_print(sa);                  cp = ipx_print(sa);
                 break;                  break;
   
         case AF_LINK:          case AF_LINK:
             {              {
                 struct sockaddr_dl *sdl = (struct sockaddr_dl *)sa;                  struct sockaddr_dl *sdl = (struct sockaddr_dl *)sa;
Line 628 
Line 628 
                         rt->rt_nodes[0].rn_dupedkey ? " =>" : "");                          rt->rt_nodes[0].rn_dupedkey ? " =>" : "");
         }          }
         putchar('\n');          putchar('\n');
         if (vflag) {          if (vflag) {
                 printf("\texpire   %10lu%c  recvpipe %10ld%c  "                  printf("\texpire   %10lu%c  recvpipe %10ld%c  "
                        "sendpipe %10ld%c\n",                         "sendpipe %10ld%c\n",
                         rt->rt_rmx.rmx_expire,                          rt->rt_rmx.rmx_expire,
                         (rt->rt_rmx.rmx_locks & RTV_EXPIRE) ? 'L' : ' ',                          (rt->rt_rmx.rmx_locks & RTV_EXPIRE) ? 'L' : ' ',
                         rt->rt_rmx.rmx_recvpipe,                          rt->rt_rmx.rmx_recvpipe,
                         (rt->rt_rmx.rmx_locks & RTV_RPIPE) ? 'L' : ' ',                          (rt->rt_rmx.rmx_locks & RTV_RPIPE) ? 'L' : ' ',
                         rt->rt_rmx.rmx_sendpipe,                          rt->rt_rmx.rmx_sendpipe,
                         (rt->rt_rmx.rmx_locks & RTV_SPIPE) ? 'L' : ' ');                          (rt->rt_rmx.rmx_locks & RTV_SPIPE) ? 'L' : ' ');
                 printf("\tssthresh %10lu%c  rtt      %10ld%c  "                  printf("\tssthresh %10lu%c  rtt      %10ld%c  "
                        "rttvar   %10ld%c\n",                         "rttvar   %10ld%c\n",
                         rt->rt_rmx.rmx_ssthresh,                          rt->rt_rmx.rmx_ssthresh,
                         (rt->rt_rmx.rmx_locks & RTV_SSTHRESH) ? 'L' : ' ',                          (rt->rt_rmx.rmx_locks & RTV_SSTHRESH) ? 'L' : ' ',
                         rt->rt_rmx.rmx_rtt,                          rt->rt_rmx.rmx_rtt,
                         (rt->rt_rmx.rmx_locks & RTV_RTT) ? 'L' : ' ',                          (rt->rt_rmx.rmx_locks & RTV_RTT) ? 'L' : ' ',
                         rt->rt_rmx.rmx_rttvar,                          rt->rt_rmx.rmx_rttvar,
                         (rt->rt_rmx.rmx_locks & RTV_RTTVAR) ? 'L' : ' ');                          (rt->rt_rmx.rmx_locks & RTV_RTTVAR) ? 'L' : ' ');
         }          }
 }  }
   
 char *  char *
Line 1011 
Line 1011 
         struct rtentry *rt;          struct rtentry *rt;
 {  {
         struct sockaddr_encap sen1, sen2, sen3;          struct sockaddr_encap sen1, sen2, sen3;
         struct ipsec_policy ipo;          struct ipsec_policy ipo;
   
 #ifdef INET6  #ifdef INET6
         struct sockaddr_in6 s61, s62;          struct sockaddr_in6 s61, s62;
Line 1022 
Line 1022 
         bcopy(kgetsa(rt_mask(rt)), &sen2, sizeof(sen2));          bcopy(kgetsa(rt_mask(rt)), &sen2, sizeof(sen2));
         bcopy(kgetsa(rt->rt_gateway), &sen3, sizeof(sen3));          bcopy(kgetsa(rt->rt_gateway), &sen3, sizeof(sen3));
   
         if (sen1.sen_type == SENT_IP4)          if (sen1.sen_type == SENT_IP4)
         {          {
             printf("%-18s %-5u ", netname(sen1.sen_ip_src.s_addr,              printf("%-18s %-5u ", netname(sen1.sen_ip_src.s_addr,
                                           sen2.sen_ip_src.s_addr),                                            sen2.sen_ip_src.s_addr),
                    ntohs(sen1.sen_sport));                     ntohs(sen1.sen_sport));
   
             printf("%-18s %-5u %-5u ", netname(sen1.sen_ip_dst.s_addr,              printf("%-18s %-5u %-5u ", netname(sen1.sen_ip_dst.s_addr,
                                                sen2.sen_ip_dst.s_addr),                                                 sen2.sen_ip_dst.s_addr),
                    ntohs(sen1.sen_dport), sen1.sen_proto);                     ntohs(sen1.sen_dport), sen1.sen_proto);
         }          }
   
 #ifdef INET6  #ifdef INET6
Line 1054 
Line 1054 
             bcopy(&sen2.sen_ip6_dst, &s62.sin6_addr, sizeof(struct in6_addr));              bcopy(&sen2.sen_ip6_dst, &s62.sin6_addr, sizeof(struct in6_addr));
   
             printf("%-42s %-5u %-5u ", netname6(&s61, &s62.sin6_addr),              printf("%-42s %-5u %-5u ", netname6(&s61, &s62.sin6_addr),
                    ntohs(sen1.sen_ip6_dport), sen1.sen_ip6_proto);                     ntohs(sen1.sen_ip6_dport), sen1.sen_ip6_proto);
         }          }
 #endif /* INET6 */  #endif /* INET6 */
   
         if (sen3.sen_type == SENT_IPSP)          if (sen3.sen_type == SENT_IPSP)
         {          {
             char hostn[NI_MAXHOST];              char hostn[NI_MAXHOST];
   
             kget(sen3.sen_ipsp, ipo);              kget(sen3.sen_ipsp, ipo);
   
             getnameinfo(&ipo.ipo_dst.sa, ipo.ipo_dst.sa.sa_len,              getnameinfo(&ipo.ipo_dst.sa, ipo.ipo_dst.sa.sa_len,
                         hostn, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);                          hostn, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
             printf("%s", hostn);              printf("%s", hostn);
   
             printf("/%-u", ipo.ipo_sproto);              printf("/%-u", ipo.ipo_sproto);
   
             switch (ipo.ipo_type)              switch (ipo.ipo_type)
             {              {
                 case IPSP_IPSEC_REQUIRE:                  case IPSP_IPSEC_REQUIRE:
                     printf("/require");                      printf("/require");
                     break;                      break;
   
                 case IPSP_IPSEC_ACQUIRE:                  case IPSP_IPSEC_ACQUIRE:
                     printf("/acquire");                      printf("/acquire");
                     break;                      break;
   
                 case IPSP_IPSEC_USE:                  case IPSP_IPSEC_USE:
                     printf("/use");                      printf("/use");
                     break;                      break;
   
                 case IPSP_IPSEC_DONTACQ:                  case IPSP_IPSEC_DONTACQ:
                     printf("/dontacq");                      printf("/dontacq");
                     break;                      break;
   
                 case IPSP_PERMIT:                  case IPSP_PERMIT:
                     printf("/permit");                      printf("/permit");
                     break;                      break;
   
                 case IPSP_DENY:                  case IPSP_DENY:
                     printf("/deny");                      printf("/deny");
                     break;                      break;
   
                 default:                  default:
                     printf("/<unknown type!>");                      printf("/<unknown type!>");
             }              }
   
             if ((ipo.ipo_addr.sen_type == SENT_IP4 &&              if ((ipo.ipo_addr.sen_type == SENT_IP4 &&
                  ipo.ipo_addr.sen_direction == IPSP_DIRECTION_IN) ||                   ipo.ipo_addr.sen_direction == IPSP_DIRECTION_IN) ||
                 (ipo.ipo_addr.sen_type == SENT_IP6 &&                  (ipo.ipo_addr.sen_type == SENT_IP6 &&
                  ipo.ipo_addr.sen_ip6_direction == IPSP_DIRECTION_IN))                   ipo.ipo_addr.sen_ip6_direction == IPSP_DIRECTION_IN))
               printf("/in\n");                printf("/in\n");
             else              else
               if ((ipo.ipo_addr.sen_type == SENT_IP4 &&                if ((ipo.ipo_addr.sen_type == SENT_IP4 &&
                    ipo.ipo_addr.sen_direction == IPSP_DIRECTION_OUT) ||                     ipo.ipo_addr.sen_direction == IPSP_DIRECTION_OUT) ||
                   (ipo.ipo_addr.sen_type == SENT_IP6 &&                    (ipo.ipo_addr.sen_type == SENT_IP6 &&
                    ipo.ipo_addr.sen_ip6_direction == IPSP_DIRECTION_OUT))                     ipo.ipo_addr.sen_ip6_direction == IPSP_DIRECTION_OUT))
                 printf("/out\n");                  printf("/out\n");
               else                else
                 printf("/<unknown>\n");                  printf("/<unknown>\n");
         }          }
 }  }
   
 void  void

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44