plan 9 kernel history: overview | file list | diff list

2000/1220/ip/devip.c (diff list | history)

2000/0424/sys/src/9/ip/devip.c:501,5082000/1220/sys/src/9/ip/devip.c:501,509 (short | long | prev | next)
1998/0306    
	while((mp = cv->multi) != nil) 
		ipifcremmulti(cv, mp->ma, mp->ia); 
 
1997/0327    
	/* The close routine will unlock the conv */ 
	cv->p->close(cv); 
2000/1220    
	cv->state = Idle; 
	qunlock(cv); 
1997/0327    
} 
 
static void 
2000/0424/sys/src/9/ip/devip.c:789,7942000/1220/sys/src/9/ip/devip.c:790,797
1998/0306    
{ 
	char *p; 
1997/0327    
 
2000/1220    
	if(c->state != 0) 
		error(Econinuse); 
1998/0306    
	c->state = Connecting; 
	c->cerr[0] = '\0'; 
	if(x->connect == nil) 
2000/0424/sys/src/9/ip/devip.c:796,8022000/1220/sys/src/9/ip/devip.c:799,809
1998/0306    
	p = x->connect(c, cb->f, cb->nf); 
	if(p != nil) 
		error(p); 
2000/1220    
	qunlock(c); 
 
1998/0306    
	sleep(&c->cr, connected, c); 
2000/1220    
 
	qlock(c); 
1998/0306    
	if(c->cerr[0] != '\0') 
		error(c->cerr); 
} 
2000/0424/sys/src/9/ip/devip.c:830,8352000/1220/sys/src/9/ip/devip.c:837,844
1998/0306    
{ 
	char *p; 
1997/0327    
 
2000/1220    
	if(c->state != 0) 
		error(Econinuse); 
1998/0306    
	c->state = Announcing; 
	c->cerr[0] = '\0'; 
	if(x->announce == nil) 
2000/0424/sys/src/9/ip/devip.c:837,8432000/1220/sys/src/9/ip/devip.c:846,856
1998/0306    
	p = x->announce(c, cb->f, cb->nf); 
	if(p != nil) 
		error(p); 
2000/1220    
	qunlock(c); 
 
1998/0306    
	sleep(&c->cr, announced, c); 
2000/1220    
 
	qlock(c); 
1998/0306    
	if(c->cerr[0] != '\0') 
		error(c->cerr); 
} 
2000/0424/sys/src/9/ip/devip.c:934,9452000/1220/sys/src/9/ip/devip.c:947,955
1997/0327    
		c = x->conv[CONV(ch->qid)]; 
1998/0306    
		cb = parsecmd(a, n); 
 
		if(canqlock(&c->car) == 0){ 
			free(cb); 
			error("connect/announce in progress"); 
1997/0327    
		} 
2000/1220    
		qlock(c); 
1998/0306    
		if(waserror()) { 
1997/0327    
			qunlock(&c->car); 
2000/1220    
			qunlock(c); 
1998/0306    
			free(cb); 
			nexterror(); 
1997/0327    
		} 
2000/0424/sys/src/9/ip/devip.c:983,9892000/1220/sys/src/9/ip/devip.c:993,999
1997/0327    
				error(p); 
1998/0306    
		} else 
			error("unknown control request"); 
		qunlock(&c->car); 
2000/1220    
		qunlock(c); 
1998/0306    
		free(cb); 
		poperror(); 
1997/0327    
	} 
2000/0424/sys/src/9/ip/devip.c:1129,11352000/1220/sys/src/9/ip/devip.c:1139,1145
1997/0327    
	c->inuse = 1; 
	strcpy(c->owner, user); 
	c->perm = 0660; 
	c->state = 0; 
2000/1220    
	c->state = Idle; 
1998/0306    
	ipmove(c->laddr, IPnoaddr); 
	ipmove(c->raddr, IPnoaddr); 
1997/0327    
	c->lport = 0; 
2000/0424/sys/src/9/ip/devip.c:1211,12162000/1220/sys/src/9/ip/devip.c:1221,1227
1997/0327    
	nc->lport = lport; 
	nc->next = nil; 
	*l = nc; 
2000/1220    
	c->state = Connected; 
1999/0302    
	qunlock(c); 
1997/0327    
 
	wakeup(&c->listenr); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)