私は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フックを登録するには?
次のコードを使用します。
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)
nf_register_net_hook(&init_net, reg)
#else
nf_register_hook(reg)
#endif
リファレンス: init_net