arptimer.c
来自「关于ARP协议方面的。比较难的。。不过是源码」· C语言 代码 · 共 42 行
C
42 行
/* arptimer.c - arptimer */#include <conf.h>#include <kernel.h>#include <network.h>void arpdq(struct arpentry *);int arpsend(struct arpentry *);/*------------------------------------------------------------------------ * arptimer - Iterate through ARP cache, aging (possibly removing) entries *------------------------------------------------------------------------ * gran - time since last iteration */voidarptimer(int gran){ 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 + -
显示快捷键?