|
|
1.1 ! root 1: /* x_routes.c - x_routes */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <proc.h> ! 6: #include <network.h> ! 7: ! 8: LOCAL char st[] = "F?GD"; ! 9: ! 10: /*------------------------------------------------------------------------ ! 11: * x_routes - (command routes) format and print routing cache entries ! 12: *------------------------------------------------------------------------ ! 13: */ ! 14: COMMAND x_routes(stdin, stdout, stderr, nargs, args) ! 15: int stdin, stdout, stderr, nargs; ! 16: char *args[]; ! 17: { ! 18: int arindex; ! 19: char str[80]; ! 20: struct arpent *atabptr; ! 21: ! 22: if (nargs > 1) { ! 23: Arp.atabsiz = Arp.atabnxt = 0; ! 24: return(OK); ! 25: } ! 26: sprintf(str, "Routing cache: size=%d, next=%d\n", ! 27: Arp.atabsiz, Arp.atabnxt); ! 28: write(stdout, str, strlen(str)); ! 29: for (arindex=0; arindex<Arp.atabsiz; arindex++) { ! 30: atabptr = &Arp.arptab[arindex]; ! 31: if (atabptr->arp_state == AR_FREE) ! 32: continue; ! 33: sprintf(str, " %2d. Route=%c, Dev=%2d", ! 34: arindex,st[atabptr->arp_state],atabptr->arp_dev); ! 35: sprintf(&str[strlen(str)], ! 36: " IPaddr=%03d.%03d.%03d.%03d, ", ! 37: atabptr->arp_Iad[0] & 0377, ! 38: atabptr->arp_Iad[1] & 0377, ! 39: atabptr->arp_Iad[2] & 0377, ! 40: atabptr->arp_Iad[3] & 0377); ! 41: sprintf(&str[strlen(str)], ! 42: "Ether addr=%02x%02x.%02x%02x.%02x%02x\n", ! 43: atabptr->arp_Ead[0]&0377, ! 44: atabptr->arp_Ead[1]&0377, ! 45: atabptr->arp_Ead[2]&0377, ! 46: atabptr->arp_Ead[3]&0377, ! 47: atabptr->arp_Ead[4]&0377, ! 48: atabptr->arp_Ead[5]&0377 ); ! 49: write(stdout, str, strlen(str)); ! 50: } ! 51: return(OK); ! 52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.