web-dev-qa-db-ja.com

nf_register_hookがLinuxカーネル4.13-rc2以降にない

私はnetfilterについて学び始め、単純なnetfilterモジュールを作成しようとしていました。すべてのチュートリアルとHOW TOがフック関数をnf_register_hook()に登録しましたが、4.13-rc1より上のLinuxカーネルでは見つかりませんでした。

私が理解している限り、nf_register_hook()関数は_nf_register_hook()関数を呼び出すために使用され、さらにnf_register_net_hook()関数を呼び出し、netリンクリストの各メンバーを反復しました、しかし私には理解するのが少し難しくなります。

nf_register_hook()関数がなくなったので、フックを登録する方法については修正中です。

nf_register_net_hook()関数はまだ残っていますが、それがどのように機能するのか本当にわかりません。

だから私の質問は結局、

4.13-rc1以上のカーネルでnetfilterフックを登録するには?

3
RishabhHardas

次のコードを使用します。

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)
    nf_register_net_hook(&init_net, reg)
#else
    nf_register_hook(reg)
#endif

リファレンス: init_net

3
Wayne