не работает функция pcap_loop
От: Аноним  
Дата: 04.01.13 10:27
Оценка:
здравствуйте. с помощью qt и libpcap пишу под linux прогу.
вот код:

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);
}


функция pcap_loop выполняется в потоке QThread. дело в том, что callback-функция got_packet не вызывается!
если пройти по шагам в debug режиме — зависнет на этой функции. кто знает?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.