всем привет. в отдельном потоке примаются пакеты по сети с помощью libpcap
вот код:
void got_packet(u_char *args,const struct pcap_pkthdr *header, const u_char *packet){
// obrabotka paketov
}
void ProcessingThread::run()
{
char *dev, errbuf[PCAP_ERRBUF_SIZE];
dev = pcap_lookupdev(errbuf);
if (dev == NULL) {
fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
//return(2);
}
printf("Device: %s\n", dev);
//opening device
handle = pcap_open_live(dev, BUFSIZ, 1, -1, errbuf);
if(handle == NULL){
fprintf(stderr, "Error: %s\n", errbuf);
}
pcap_loop(handle, -1, got_packet, NULL); //входим в петлю
pcap_close(handle);
дело в том, что callback-функция got_packet не вызывается. когда прохожу в debug режиме, программа стопориться на pcap_loop-функции. в чем дело?