~kris/9p

9hist

2bfcded8114f8feb706c317f9425cfca1fb63c43 — David du Colombier 25 years ago b72753b
Plan 9 from Bell Labs 2001-02-27
2 files changed, 21 insertions(+), 6 deletions(-)

M ip/devip.c
M ip/il.c
M ip/devip.c => ip/devip.c +1 -1
@@ 797,7 797,7 @@ setraddrport(Conv* c, char* str)
	c->rport = atoi(p);
	p = strchr(p, '!');
	if(p){
		if(strcmp(p, "!r") == 0)
		if(strstr(p, "!r") != nil)
			c->restricted = 1;
	}
	return nil;

M ip/il.c => ip/il.c +20 -5
@@ 100,6 100,9 @@ struct Ilcb			/* Control block */
	ulong	qt[Nqt+1];	/* state table for query messages */
	int	qtx;		/* ... index into qt */

	/* if set, fasttimeout causes a connection request to terminate after 4*Iltickms */
	int	fasttimeout;

	/* timers */
	ulong	lastxmit;	/* time of last xmit */
	ulong	lastrecv;	/* time of last recv */


@@ 210,7 213,7 @@ void	ilfreeq(Ilcb*);
void	ilrexmit(Ilcb*);
void	ilbackoff(Ilcb*);
void	ilsettimeout(Ilcb*);
char*	ilstart(Conv*, int);
char*	ilstart(Conv*, int, int);
void	ilackproc(void*);
void	iloutoforder(Conv*, Ilhdr*, Block*);
void	iliput(Proto*, uchar*, Block*);


@@ 229,11 232,13 @@ static char*
ilconnect(Conv *c, char **argv, int argc)
{
	char *e;
	int fast;

	fast = argc > 1 && strstr(argv[1], "!fasttimeout") != nil;
	e = Fsstdconnect(c, argv, argc);
	if(e != nil)
		return e;
	return ilstart(c, IL_CONNECT);
	return ilstart(c, IL_CONNECT, fast);
}

static int


@@ 267,7 272,7 @@ ilannounce(Conv *c, char **argv, int argc)
	e = Fsstdannounce(c, argv, argc);
	if(e != nil)
		return e;
	e = ilstart(c, IL_LISTEN);
	e = ilstart(c, IL_LISTEN, 0);
	if(e != nil)
		return e;
	Fsconnected(c, nil);


@@ 496,7 501,6 @@ ilackto(Ilcb *ic, ulong ackto, Block *bp)
		bp->list = nil;
		ic->unackedbytes -= blocklen(bp);
		freeblist(bp);
		ic->rexmit = 0;
		ilsettimeout(ic);
	}
	qunlock(&ic->ackq);


@@ 1092,6 1096,9 @@ ilbackoff(Ilcb *ic)
		pt = MaxTimeout;
	ic->timeout = msec + pt;

	if(ic->fasttimeout)
		ic->timeout = msec+Iltickms;

	ic->rexmit++;
}



@@ 1206,6 1213,7 @@ ilcbinit(Ilcb *ic)
	ic->rxtot = 0;
	ic->rxquery = 0;
	ic->qtx = 1;
	ic->fasttimeout = 0;

	/* timers */
	ic->delay = DefRtt<<LogAGain;


@@ 1217,7 1225,7 @@ ilcbinit(Ilcb *ic)
}

char*
ilstart(Conv *c, int type)
ilstart(Conv *c, int type, int fasttimeout)
{
	Ilcb *ic;
	Ilpriv *ipriv;


@@ 1243,6 1251,13 @@ ilstart(Conv *c, int type)

	ilcbinit(ic);

	if(fasttimeout){
		/* timeout if we can't connect quickly */
		ic->fasttimeout = 1;
		ic->timeout = msec+Iltickms;
		ic->rexmit = MaxRexmit - 4;
	};

	switch(type) {
	default:
		netlog(c->p->f, Logil, "il: start: type %d\n", type);