[Winpcap-users] WinPCap in a winService

Alessandro Baldisserri bujia at libero.it
Mon Oct 3 06:45:17 GMT 2005


Sorry for Italian message....
Me too want to use pcap_open_live in WinService, and obvoiusly I want it in OnStart method.
The message:

SERVICE ON LOCAL COMPUTER IS STARTED, THEN IS STOPPED. SOME SERVICES STOP ITSELF AUTOMATICALLY IF THEY AREN'T TASK TO EXECUTE...

Obviously next in my OnStart code I attach pcap_handler to a function callback called any time a packet was captured, but it seems that flow of my program doesn't arrive in tha point...
I put also a definition of a Timer before code that I post below, but nothing.
If I put a "return;" on method OnStart between pcap_findalldevs e pcap_open_live service run correctly and start, but obviously nothing is ok....my service in this way is no useful....

Sorry for my very bad English.... I hope you understand where is the problem....

Thanks!
Alessandro




---------- Initial Header -----------

>From      : winpcap-users-bounces at winpcap.org
To          : winpcap-users at winpcap.org
Cc          : 
Date      : Sun, 2 Oct 2005 13:22:01 -0700 (PDT)
Subject : Re: [Winpcap-users] WinPCap in a winService







> 
> One will receive the error message exiting Windows service program if the program does not exit cleanly.  The program should release all threads. 
> 
>  
> 
> I use pcap_open_live in my Windows service program without a problem.  If you translate the message from Italian I think I can identify the problem easier.
> 
>  
> 
> Regards,
> 
>  
> 
> Alex
> 
> 
> Alessandro Baldisserri <bujia at libero.it> wrote:Hi!
> 
> I'm developing an application based on winPCap that analyze web traffic. I thought to run this application like a winService. I use Visual C++ .NET. My application run very well like console application. Now I try to realize service. I put code that previously I had in "main" in the method "OnStart" of a class ServiceBase.
> My code in OnStart is this:
> ---------------------------------------------------------------------------
> if (pcap_findalldevs(&dev,errbuf) == -1) 
> {
> exit(1);
> }
> a=dev->addresses;
> // Apertura del device per la cattura dei pacchetti
> pcap_handler_p = pcap_open_live(dev->name,65536,0,1000,errbuf);
> if (pcap_handler_p==NULL) 
> { 
> //printf("Unable to open device ETH0!! \n");
> exit(1);
> }
> sprintf(f,"not ((src net 192.168.1) and (dst net 192.168.1))");
> // Compilazione filtro da applicare alla cattura dei pacchetti
> cap_compile(pcap_handler_p,&filter,f,1,((struct sockaddr_in*)a->netmask)->sin_addr.S_un.S_addr); 
> ....
> ....
> ....
> 
> 
> ------------------------------------------------------------------
> 
> It seems that pcap_findalldevs returns a positive value,so all ok, but if flow of program run pcap_open_live when I activate service this is message:
> 
> IL SERVIZIO SU COMPUTER LOCALE SI è AVVIATO, QUINDI SI è INTERROTTO. ALCUNI SERVIZI SI INTERROMPONO AUTOMATICAMENTE SE NON VI SONO OPERAZIONI DA ESEGUIRE......
> 
> My question is: is a problem to put winPcap functions in a OnStart method of a Service? In this method I want to initialize my variables, open live capture session and so my service run...
> 
> Any help will be very useful...
> Thanks in advance!
> Alessandro
> 
> 
> 
> 
> 
> _______________________________________________
> Winpcap-users mailing list
> Winpcap-users at winpcap.org
> https://www.winpcap.org/mailman/listinfo/winpcap-users
> 
> 




More information about the Winpcap-users mailing list