What kind of signals? Since you set a 1 second timeout, I expect that
PacketReceivePacket() will return once per second also if you don't receive
packet. Look for PacketSetReadTimeout() inside the docs for details.
Loris
----- Original Message -----
From: "Annie Deroo" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, June 29, 2003 3:19 PM
Subject: [WinPcap-users] problem receiving packets, packetReceivePacket
problem
I have a problem receiving packets in my main capture loop. I call the
ListenThread function from my program and start a new thread (it's not the
thread that causes the problem, I still have the problem without it). The
function packetReceivePacket(m_lpAdapter,lpPacket,TRUE) gives signals that I
receive packets even when there aren't any packets send (I'm sure no packets
are send, I watch the traffic with Ethereal), even when my computer is
disconnected from any network, it still gives signals! The code is written
under Visual C++ maybe that's a problem??? My adapter is good initialated, I
can send packets (Ethereal shows them). So my question is: what's going
wrong??? and of course, how do I solve this! Thank U.
AfxBeginThread(ListenThread,this);
UINT CPIGDlg::ListenThread(LPVOID pParam)
{
CPIGDlg * dlg = (CPIGDlg *) pParam;
dlg->ListenThread();
return 0;
}
void CPIGDlg::ListenThread()
{
LPPACKET lpPacket;
char buffer[256000];
if (!m_lpAdapter || (m_lpAdapter->hFile == INVALID_HANDLE_VALUE))
{
AfxMessageBox("Unable to open the adapter");
}
// set the network adapter in promiscuous mode
if(PacketSetHwFilter(m_lpAdapter,NDIS_PACKET_TYPE_PROMISCUOUS)==FALSE){
AfxMessageBox("Warning: unable to set promiscuous mode!\n");
}
// set a 512K buffer in the driver
if(PacketSetBuff(m_lpAdapter,512000)==FALSE){
AfxMessageBox("Unable to set the kernel buffer!\n");
}
// set a 1 second read timeout
if(PacketSetReadTimeout(m_lpAdapter,1000)==FALSE){
AfxMessageBox("Warning: unable to set the read tiemout!\n");
}
//allocate and initialize a packet structure that will be used to
//receive the packets.
if((lpPacket = PacketAllocatePacket())==NULL){
AfxMessageBox("\nError: failed to allocate the LPPACKET structure.");
}
PacketInitPacket(lpPacket,(char*)buffer,256000);
//main capture loop
while(true)
{
// capture the packets
if(PacketReceivePacket(m_lpAdapter,lpPacket,TRUE)==FALSE){
MessageBox("Error: PacketReceivePacket failed");
}
else{
AfxMessageBox("packet captured");
}
}
PacketFreePacket(lpPacket);
// close the adapter and exit
PacketCloseAdapter(m_lpAdapter);
}
==================================================================
This is the WinPcap users list. It is archived at
http://www.mail-archive.com/[EMAIL PROTECTED]/
To unsubscribe use
mailto: [EMAIL PROTECTED]
==================================================================