/* scrnPX.c */ /* * Includes */ #include #include #include "vtcpip.h" #include "dfault.h" #include "evtdef.h" #include "hstdef.h" #include "prodef.h" #include "prodat.h" #include "tcpdat.h" #include "suspnd.h" #include "termio.h" #include "fmtdat.h" #include "vt1xx.h" extern char *cstate[]; scrnP(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register TCPKT *tl; register DLAYER *dl; register char *ea; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #P)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; sprintf(s, "__PKT"); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); dl = &tl->d; row++; sprintf(s, " DLAYER d"); fmtplc(s,row++); sprintf(s, " iostat . . . . . . . . = 0x%04.4X", dl->iostat); fmtplc(s,row++); sprintf(s, " iolen . . . . . . . . = 0x%04.4X", dl->iolen); fmtplc(s,row++); sprintf(s, " type . . . . . . . . . = 0x%04.4X", dl->type); fmtplc(s,row++); ea = &dl->dest; row++; sprintf(s, " dest = %02X-%02X-%02X-%02X-%02X-%02X", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF, *(ea+4) & 0xFF, *(ea+5) & 0xFF); fmtplc(s,row++); ea = &dl->me; row++; sprintf(s, " me = %02X-%02X-%02X-%02X-%02X-%02X", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF, *(ea+4) & 0xFF, *(ea+5) & 0xFF); fmtplc(s,row++); } scrnQ(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register TCPKT *tl; register IPLAYER *il; char *ea; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #Q)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; sprintf(s, "__PKT"); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); sprintf(s, " IPLAYER i size = %4.4d bytes", sizeof(struct iph)); fmtplc(s,row++); il = &tl->i; row++; sprintf(s, " IPLAYER i"); fmtplc(s,row++); sprintf(s, " versionandhdrlen . . . = 0x__%02.2X", il->versionandhdrlen & 0xFF); fmtplc(s,row++); sprintf(s, " service . . . . . . . = 0x__%02.2X", il->service & 0xFF); fmtplc(s,row++); sprintf(s, " tlen . . . . . . . . . = %6.6u", intswap(il->tlen)); fmtplc(s,row++); sprintf(s, " identity . . . . . . . = 0x%04.4X", intswap(il->identity)); fmtplc(s,row++); sprintf(s, " frags . . . . . . . . = 0x%04.4X", intswap(il->frags)); fmtplc(s,row++); sprintf(s, " ttl . . . . . . . . . = %6.6u", il->ttl & 0xFF); fmtplc(s,row++); sprintf(s, " protocol . . . . . . . = 0x__%02.2X", il->protocol & 0xFF); fmtplc(s,row++); sprintf(s, " check . . . . . . . . = 0x%04.4X", intswap(il->check)); fmtplc(s,row++); ea = &il->ipsource; row++; sprintf(s, " ipsource = %d.%d.%d.%d", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF); fmtplc(s,row++); ea = &il->ipdest; row++; sprintf(s, " ipdest = %d.%d.%d.%d", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF); fmtplc(s,row++); } scrnR(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register TCPKT *tl; register TCPLAYER *tcl; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #R)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; row = 2; sprintf(s, "TCPKT tcpout size = %4.4d bytes", sizeof(struct tcp)); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); sprintf(s, " IPLAYER i size = %4.4d bytes", sizeof(struct iph)); fmtplc(s,row++); sprintf(s, " TCPLAYER t size = %4.4d bytes", sizeof(struct tcph)); fmtplc(s,row++); sprintf(s, " TCPKT data size = %4.4d bytes", sizeof(skt->tcpout.x.data)); fmtplc(s,row++); tcl = &tl->t; row++; sprintf(s, " TCPLAYER t"); fmtplc(s,row++); sprintf(s, " source . . . . . . . . = %6d", intswap(tcl->source)); fmtplc(s,row++); sprintf(s, " dest . . . . . . . . . = %6d", intswap(tcl->dest)); fmtplc(s,row++); sprintf(s, " seq . . . . . . . . . = 0x%08.8lX", longswap(tcl->seq)); fmtplc(s,row++); sprintf(s, " ack . . . . . . . . . = 0x%08.8lX", longswap(tcl->ack)); fmtplc(s,row++); sprintf(s, " hlen . . . . . . . . . = %4.4d", tcl->hlen & 0xFF); fmtplc(s,row++); sprintf(s, " flags . . . . . . . . = 0x__%02.2X", tcl->flags & 0xFF); fmtplc(s,row++); sprintf(s, " window . . . . . . . . = %4.4d", intswap(tcl->window)); fmtplc(s,row++); sprintf(s, " check . . . . . . . . = 0x%04.4X", intswap(tcl->check)); fmtplc(s,row++); sprintf(s, " urgent . . . . . . . . = 0x%04.4X", intswap(tcl->urgent)); fmtplc(s,row++); } scrnS(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register UDPKT *tl; register UDPLAYER *il; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #S)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; sprintf(s, "UDPKT udp size = %4.4d bytes", sizeof(struct udp)); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); sprintf(s, " IPLAYER i size = %4.4d bytes", sizeof(struct iph)); fmtplc(s,row++); sprintf(s, " UDPLAYER u size = %4.4d bytes", sizeof(struct udph)); fmtplc(s,row++); sprintf(s, " UDPKT data size = %4.4d bytes", UMAXLEN); fmtplc(s,row++); il = &tl->u; row++; sprintf(s, " UDPLAYER u"); fmtplc(s,row++); sprintf(s, " source . . . . . . . . = %6.6u", intswap(il->source)); fmtplc(s,row++); sprintf(s, " dest . . . . . . . . = %6.6u", intswap(il->dest)); fmtplc(s,row++); sprintf(s, " length . . . . . . . . = 0x%04.4X", intswap(il->length)); fmtplc(s,row++); sprintf(s, " check . . . . . . . . = 0x%04.4X", intswap(il->check)); fmtplc(s,row++); } scrnT(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register ICMPKT *tl; register ICMPLAYER *il; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #T)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; sprintf(s, "ICMPPKT icmp size = %4.4d", sizeof(struct icmp)); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); sprintf(s, " IPLAYER i size = %4.4d bytes", sizeof(struct iph)); fmtplc(s,row++); sprintf(s, " ICMPLAYER c size = %4.4d bytes", sizeof(struct icmph)); fmtplc(s,row++); sprintf(s, " ICMPKT data size = %4.4d bytes", ICMPMAX); fmtplc(s,row++); il = &tl->c; row++; sprintf(s, " ICMPLAYER c"); fmtplc(s,row++); sprintf(s, " type . . . . . . . . = 0x__%02.2X", il->type & 0xFF); fmtplc(s,row++); sprintf(s, " code . . . . . . . . = 0x__%02.2X", il->code & 0xFF); fmtplc(s,row++); sprintf(s, " check . . . . . . . . = 0x%04.4X", intswap(il->check)); fmtplc(s,row++); sprintf(s, " part1 . . . . . . . . = 0x%04.4X", intswap(il->part1)); fmtplc(s,row++); sprintf(s, " part2 . . . . . . . . = 0x%04.4X", intswap(il->part2)); fmtplc(s,row++); } scrnU(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register ARPKT *tl; register char *ea; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #U)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } tl = &skt->tcpout; sprintf(s, "ARPKT arp size = %4.4d bytes", sizeof(struct plummer)); fmtplc(s,row++); row++; sprintf(s, " DLAYER d size = %4.4d bytes", sizeof(struct ether)); fmtplc(s,row++); sprintf(s, " ARPLAYER a size = %4.4d bytes", sizeof(struct plummer) - sizeof(struct ether)); fmtplc(s,row++); row++; sprintf(s, " ARPLAYER a"); fmtplc(s,row++); sprintf(s, " hrd . . . . . . . . . = 0x%04.4X", intswap(tl->hrd)); fmtplc(s,row++); sprintf(s, " pro . . . . . . . . . = 0x%04.4X", intswap(tl->pro)); fmtplc(s,row++); sprintf(s, " hln . . . . . . . . . = 0x__%02.2X", tl->hln & 0xFF); fmtplc(s,row++); sprintf(s, " pln . . . . . . . . . = 0x__%02.2X", tl->pln & 0xFF); fmtplc(s,row++); sprintf(s, " op . . . . . . . . . . = 0x%04.4X", intswap(tl->op)); fmtplc(s,row++); ea = &tl->sha; row++; sprintf(s, " sha . . . . . . . . . = %02X-%02X-%02X-%02X-%02X-%02X", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF, *(ea+4) & 0xFF, *(ea+5) & 0xFF); fmtplc(s,row++); ea = &tl->spa; sprintf(s, " spa . . . . . . . . . = %d.%d.%d.%d", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF); fmtplc(s,row++); ea = &tl->tha; row++; sprintf(s, " tha . . . . . . . . . = %02X-%02X-%02X-%02X-%02X-%02X", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF, *(ea+4) & 0xFF, *(ea+5) & 0xFF); fmtplc(s,row++); ea = &tl->tpa; sprintf(s, " tpa . . . . . . . . . = %d.%d.%d.%d", *ea & 0xFF, *(ea+1) & 0xFF, *(ea+2) & 0xFF, *(ea+3) & 0xFF); fmtplc(s,row++); } scrnV(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register UDPKT *pkt; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #V)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } pkt = &skt->tcpout; uichar(&pkt->data); } scrnW(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register UDPKT *pkt; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #W)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } pkt = &skt->tcpout; uidata(&pkt->data,0); } scrnX(sknum) int sknum; { int row; char s[80]; register struct socket *skt; register UDPKT *pkt; sknum = MSCKTS - 1; row = 0; sprintf(s,"SCKT%02.2d (Screen #X)", sknum); fmtplc(s,row++); row = 2; skt = (struct socket *) mapskt(sknum); if (skt == -1) { sprintf(s, " No Diagnostic Packet Loaded !"); fmtplc(s,row); return; } pkt = &skt->tcpout; uidata(&pkt->data,256); } uichar(pkt) register TCPKT *pkt; { register int c,j; register char *t; int i,row; char s[80]; char *pos; row = 2; sprintf(s, "PKT data"); fmtplc(s,row++); row = 5; for(pos=pkt, i=0; i<8; i++) { sprintf(s,"[%06.6o] ", 64*i); for(t=s+12, j=0; j<64; j++) { c = *pos++; if(c<=31 || c>=127) c = '.'; *t++ = c; } *t = 0; fmtplc(s,row+i); } } uidata(pkt,offset) register TCPKT *pkt; int offset; { register int c,j; int i,row; char s[80],t[8]; char *pos; row = 2; sprintf(s, "PKT data"); fmtplc(s,row++); row = 4; pos = pkt; for(pos+=offset, i=0; i<16; i++) { sprintf(s,"[%06.6o] ", 16*i + offset); for(j=0; j<16; j++) { sprintf(t," %02.2X", *pos++ & 0xFF); strcat(s,t); } fmtplc(s,row+i); } }