Hi.
The code for remote capture uses WinPcap and pthreads and it runs just fine.
So, I tend to exclude any incompatibility between pthreads and WinPcap.

        fulvio

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: venerdi 11 giugno 2004 1.44
> To: [EMAIL PROTECTED]
> Subject: [WinPcap-users] pthreads and winpcap
>
>
> I am really having some troubles with running pthreads and
> winpcap together.  I am
> pretty rusty on my C so maybe it is just my stupidity, but I keep
> getting lockups and
> my program will not run.
>
> Basically, what I am trying to do is start a thread that will
> send out some packets
> once every few seconds.  While this thread is going the main
> program calls the
> pcap_loop and is listening for certain replies.
>
> Unfortunately, when I put the pthread_create call in the program
> and run it, it just
> locks up on that call(ran it in gdb).  I comment out that line
> and the listening part runs
> just fine.
>
> I am compiling with cygwin (gcc 3.3.1) on a windows 98 box.  I
> have tried with both
> the beta winpcap and v3 (both act the same).
>
> I am pasting a stripped down program that demonstrates my problem:
>
> =============== test.c =================
>
> #include <pcap.h>
> #include <remote-ext.h>
> #include <pthread.h>
>
> void *test(void *blah)
> {
>   int done=0;
>   while(!done){
>      printf("Who: %s\n", (char *)blah);
>      sleep(5);
>   }
> }
>
> int main(){
>     pcap_if_t *alldevs;
>     pcap_if_t *d;
>     int inum;
>     int i=0;
>     pcap_t *adhandle;
>     char errbuf[PCAP_ERRBUF_SIZE];
>
>     pthread_t t1;
>     pthread_create(&t1, NULL,&test,(void *)"numero uno");
>     pthread_join(t1,NULL);
>
>     /* Retrieve the device list */
>     if (pcap_findalldevs(&alldevs, errbuf) == -1)
>     {
>         fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
>         exit(1);
>     }
>
>     /* Print the list */
>     for(d=alldevs; d; d=d->next)
>     {
>         printf("%d. %s", ++i, d->name);
>         if (d->description)
>             printf(" (%s)\n", d->description);
>         else
>             printf(" (No description available)\n");
>     }
>
>     if(i==0)
>     {
>         printf("\nNo interfaces found! Make sure WinPcap is
> installed.\n");
>         return -1;
>     }
>     int ptret;
>     return 0;
>
> }
>
> =================================
>
> I compile with these:
>
> gcc test.c -mno-cygwin -c -o test.o -I ../../include -DWPCAP
> gcc -mno-cygwin -L ../../lib -o test.exe test.o -lwpcap -lpthread
>
> Any ideas?? My brain damage??
>
> Thanks,
>
> Eric Testegen
>
>
>
> ==================================================================
>  This is the WinPcap users list. It is archived at
>  http://www.mail-archive.com/[EMAIL PROTECTED]/
>
>  To unsubscribe use
>  mailto: [EMAIL PROTECTED]
> ==================================================================



==================================================================
 This is the WinPcap users list. It is archived at
 http://www.mail-archive.com/[EMAIL PROTECTED]/

 To unsubscribe use 
 mailto: [EMAIL PROTECTED]
==================================================================

Reply via email to