Wie benutzt man pcap_breakloop?
Ich habe eine pcap_loop-Funktion in einer anderen Funktion, die Pakete erfasst, bis der Benutzer sie stoppt, d. H.
void functionA()
{
signal(SIGINT, terminate_process);
pcap_loop(handle, -1, callback, NULL);
...
}
void terminate_process(int signum)
{
pcap_breakloop(handle);
pcap_close(handle);
}
Ist es möglich, eine Dauer für die Erfassung von Paketen festzulegen? So etwas wie:
if (time(NULL) - start_time > 100)
pcap_breakloop(handle);
Aber ich weiß nicht, wo ich das platzieren soll, da bisher alle Beispiele pcap_breakloop in einem Signal-Handler verwendet haben, der Benutzereingriff erfordert. Wie wird die Zeitbedingung überprüft, während pcap_loop ausgeführt wird?
Danke.
Grüße, Rayne