tcpdump mailing list archives
Exiting pcap_loop
From: TCPDump <tcpdump () intrusense com>
Date: 30 Apr 2003 11:44:53 -0400
Hello, I'm looking for a portable way to tell pcap_loop to return when it hasn't received a packet. I'm using setitimer() to trigger SIGALRM and execute a function. I know there's a timeout value for pcap_open_live() but it's unreliable. Here's an short example of what I'm doing: void response_timeout() { fprintf(stdout, "No response from peer\n"); return; } main() { struct itimerval timeout; memset(&timeout, 0, sizeof(struct itimerval)); /* SET UP PCAP DESCRIPTOR */ /* SET UP VERY SPECIFIC PCAP FILTER */ signal(SIGARLM, response_timeout); for(;;) { /* DO STUFF */ timeout.it_value.tv_sec = 1; setitimer(ITIMER_REAL, &timeout, NULL); if(pcap_loop(pcap_d, 1, (pcap_handler)process_packets, NULL)) fatal_error("Problem"); timeout.it_value.tv_sec = 0; setitimer(ITIMER_REAL, &timeout, NULL); /* DO MORE STUFF */ } return; } (I just whipped that up from scratch so please ignore any typos) Any help would be appreciated. Thank you, Darren
Current thread:
- Exiting pcap_loop TCPDump (Apr 30)
- Re: Exiting pcap_loop FZS (Apr 30)