TCP-group 1992
[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Anonymous policy / New code
- To: johan@ECE.ORST.EDU, tcp-group@ucsd.edu
- Subject: Anonymous policy / New code
- From: crompton@NADC.NADC.NAVY.MIL (D. Crompton)
- Date: Sun, 26 Jan 92 23:57:15 EST
Johan,
Your changes look good. I only wish I could keep the code going! I
have finally gone back to 1.8b PA0GRI. It is absolutely stable here. I
had numerous crashes with your prior version. Wish I give give you some
info on what or where. Seems it may be related to BBS and forwarding but
that is just a guess. My log file generally showed that as last activity.
It is a real mystery why different users have different problems with these
versions. Guess you have to stick with what works for you. I have a stable
system with 1.8b. If you find something that you think may be causing this
let me know. Until then I will wait awhile. I really like some of the changes
you have made and hope to get back to it soon.
I have often complained about the displays under NOS. I often have 6,8,10
sessions going out of my system and trying to keep track of there status
and progress with 'tcp status' and the socket command is not very easy.
You have to type in at least a socket number for each session to see what
is going on. So I wrote this little routine to allow viewing of all sockets
not is listen state. It shows the RX/TX bytes and retry bytes. Not totally
refined, but a quick write to see how it works. I believe we need more status
commands like this to QUICKLY show system health. I do not want to have to
look at one screen to get a number to use to look at another screen etc.
Anyhow here is the code - use it how you wish....
.[B.[B
ZZZZ
/* 'tcp view' command - add to TCPCMD.C in NOS */
/* Allows quick view of running sockets */
/* PROTOTYPE */
static int doview __ARGS((void));
/* COMMAND */
"view", doview, 0, 0, NULLCHAR,
/* CODE */
static int
doview()
{
register struct tcb *tcb;
int32 sent,recvd;
char temp[40];
tprintf(" Send Send
Receive Receive\n");
tprintf(" &TCB Remote Socket:Port:Local Port Bytes Retries
Bytes Retries\n");
tprintf(" ---- ----------------------------- ----- -------
------- -------\n");
for(tcb=Tcbs;tcb != NULLTCB;tcb = tcb->next){
if(tcb->state == TCP_LISTEN)
continue;
tprintf("%8lx ",ptol(tcb));
strcpy(temp,pinet(&tcb->conn.remote));
strcat(temp,strstr(pinet(&tcb->conn.local),":"));
tprintf("%-30s",temp);
sent = tcb->snd.una - tcb->iss;
recvd = tcb->rcv.nxt - tcb->irs;
tprintf("%11lu ",sent);
tprintf("%7lu ",tcb->resent);
tprintf("%11lu ",recvd);
tprintf("%7lu",tcb->rerecv);
if(tprintf("\n") == EOF)
return 0;
}
return 0;
}
Doug
------------------------------