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

Antworten auf die Frage(0)

Ihre Antwort auf die Frage