別の関数に pcap_loop 関数があり、ユーザーが停止するまでパケットをキャプチャします。
void functionA()
{
signal(SIGINT, terminate_process);
pcap_loop(handle, -1, callback, NULL);
...
}
void terminate_process(int signum)
{
pcap_breakloop(handle);
pcap_close(handle);
}
パケットがキャプチャされる期間を設定することはできますか? 何かのようなもの:
if (time(NULL) - start_time > 100)
pcap_breakloop(handle);
しかし、これをどこに置くべきかわかりません。これまでに見たすべての例では、ユーザーの介入が必要なシグナルハンドラーで pcap_breakloop を使用していたためです。pcap_loop の実行中に時間条件はどのようにチェックされますか?
ありがとうございました。
よろしく、レイン