- 論壇徽章:
- 36
|
嗯,這個函數(shù) nf_register_hook 實現(xiàn)的也很清楚
int nf_register_hook(struct nf_hook_ops *reg)
{
struct nf_hook_ops *elem;
int err;
err = mutex_lock_interruptible(&nf_hook_mutex);
if (err < 0)
return err;
list_for_each_entry(elem, &nf_hooks[reg->pf][reg->hooknum], list) {
if (reg->priority < elem->priority)
break;
}
list_add_rcu(®->list, elem->list.prev);
mutex_unlock(&nf_hook_mutex);
return 0;
}
只有當(dāng)帶注冊的 hook 優(yōu)先級低于全局鏈表中的某個元素的優(yōu)先級時,才會插到該元素的前面。
因此,如果兩個同優(yōu)先級的 hook 函數(shù),注冊在通過一個 hook 點,先注冊的先執(zhí)行。
但是,不建議這樣做。優(yōu)先級最好不要和已經(jīng)注冊的 優(yōu)先級相同。 |
|