/* UDP-related user commands * Copyright 1991 Phil Karn, KA9Q */ #include #include "global.h" #include "mbuf.h" #include "netuser.h" #include "udp.h" #include "internet.h" #include "cmdparse.h" #include "commands.h" static int doudpstat __ARGS((int argc,char *argv[],void *p)); static struct cmds Udpcmds[] = { "status", doudpstat, 0, 0, NULLCHAR, NULLCHAR, }; int doudp(argc,argv,p) int argc; char *argv[]; void *p; { return subcmd(Udpcmds,argc,argv,p); } int st_udp(udp,n) struct udp_cb *udp; int n; { if(n == 0) tprintf(" &UCB Rcv-Q Local socket\n"); return tprintf("%8lx%6u %s\n",ptol(udp),udp->rcvcnt,pinet(&udp->socket)); } /* Dump UDP statistics and control blocks */ static int doudpstat(argc,argv,p) int argc; char *argv[]; void *p; { register struct udp_cb *udp; register int i; for(i=1;i<=NUMUDPMIB;i++){ tprintf("(%2u)%-20s%10lu",i, Udp_mib[i].name,Udp_mib[i].value.integer); if(i % 2) tprintf(" "); else tprintf("\n"); } if((i % 2) == 0) tprintf("\n"); tprintf(" &UCB Rcv-Q Local socket\n"); for(udp = Udps;udp != NULLUDP; udp = udp->next){ if(st_udp(udp,1) == EOF) return 0; } return 0; }