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

1998/0307/ip/ip.c (diff list | history)

1998/0306/sys/src/9/ip/ip.c:127,1321998/0307/sys/src/9/ip/ip.c:127,140 (short | long | prev | next)
1997/0327    
	} 
1998/0306    
	ifc = r->ifc; 
1997/0327    
 
1998/0307    
	if(waserror()){ 
		runlock(ifc); 
		nexterror(); 
	} 
	rlock(ifc); 
	if(ifc->m == nil) 
		goto raise; 
 
1997/0327    
	/* If we dont need to fragment just send it */ 
1998/0306    
	medialen = ifc->m->maxmtu - ifc->m->hsize; 
1997/0327    
	if(len <= medialen) { 
1998/0306/sys/src/9/ip/ip.c:141,1461998/0307/sys/src/9/ip/ip.c:149,156
1997/0327    
 
1998/0306    
/*print("ipoput %V->%V via %V\n", eh->src, eh->dst, gate);*/ 
		ifc->m->bwrite(ifc, bp, V4, gate); 
1998/0307    
		runlock(ifc); 
		poperror(); 
1997/0327    
		return; 
	} 
 
1998/0306/sys/src/9/ip/ip.c:203,2091998/0307/sys/src/9/ip/ip.c:213,219
1997/0327    
			chunk -= blklen; 
			if(xp->rp == xp->wp) 
				xp = xp->next; 
		}  
1998/0307    
		} 
1997/0327    
 
		feh->cksum[0] = 0; 
		feh->cksum[1] = 0; 
1998/0306/sys/src/9/ip/ip.c:212,2171998/0307/sys/src/9/ip/ip.c:222,229
1997/0327    
	} 
 
raise: 
1998/0307    
	runlock(ifc); 
	poperror(); 
1997/0327    
	freeblist(bp);	 
} 
 


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