sk_buff がどのプロセスに向けられているかを判断する方法を探しています。それを行う簡単な方法がないことを私は知っています。を取得するためsk_buff
に使用してnetif_rx notifier
います。NETFILTER は割り込みコンテキストで動作するため、NETFILTER の代わりに通知機能を使用する必要がありました (ただし、この場合、NETFILTER が何らかの形でより便利になる場合は、切り替えることができます)。
私がこれまでに試したこと:
から取得するにstruct pid *sk_peer_pid
はstruct sock *
. 各タスクの開いているファイル記述子と
比較します。これは重すぎる。
ネットワーク名前空間。すべてのプロセスが同じ名前空間を使用し、この機能はデバイスでデフォルトで有効になっていないため、これは役に立ちませんでした。struct file *
struct files_struct
私の最後のアイデアは、パケットの宛先ポートと、プロセスがリッスンしているポートを比較することです。それを行う方法はありますか?パケットから目的のポート番号を取得し、それを調べて、どのプロセスがリッスンしているかを確認するには?
質問する
634 次