arptimer.c,v

来自「关于ARP协议方面的。比较难的。。不过是源码」· C,V 代码 · 共 62 行

C,V
62
字号
head	1.1;access;symbols;locks	dls:1.1; strict;comment	@ * @;1.1date	97.09.21.19.22.42;	author dls;	state Dist;branches;next	;desc@@1.1log@Initial revision@text@/* arptimer.c - arptimer */#include <conf.h>#include <kernel.h>#include <network.h>/*------------------------------------------------------------------------ * arptimer - Iterate through ARP cache, aging (possibly removing) entries *------------------------------------------------------------------------ */void arptimer(gran)int	gran;				/* time since last iteration	*/{	struct arpentry *pae;	STATWORD	ps;	int		i;	disable(ps);	/* mutex */	for (i=0; i<ARP_TSIZE; ++i) {		if ((pae = &arptable[i])->ae_state == AS_FREE)			continue;		if (pae->ae_ttl == ARP_INF)			continue; /* don't time out permanent entry */		if ((pae->ae_ttl -= gran) <= 0)			if (pae->ae_state == AS_RESOLVED)				pae->ae_state = AS_FREE;			else if (++pae->ae_attempts > ARP_MAXRETRY) {				pae->ae_state = AS_FREE;				arpdq(pae);			} else {				pae->ae_ttl = ARP_RESEND;				arpsend(pae);			}	}	restore(ps);}@

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?