[Winpcap-users] Question about operation of pcap_next_ex ()
innon-blocking mode...
Gianluca Varenni
gianluca.varenni at cacetech.com
Fri May 11 17:16:17 GMT 2007
----- Original Message -----
From: Samir Sawhney
To: winpcap-users at winpcap.org
Sent: Monday, May 07, 2007 2:00 AM
Subject: [Winpcap-users] Question about operation of pcap_next_ex () innon-blocking mode...
Hello,
I am using the winpcap 4.0 library to send and receive
TCP/IP packets to/from a demo application running on a
Windows 2000/XP computer.
From an earlier post, I learnt that setting the
'read_timeout' parameter of pcap_open () to -1 causes
pcap_next_ex () to exhibit non-blocking behavior.
In such a (non-blocking) configuration, what are the
parameters that determine when packets are copied out from
the kernel buffers into the user buffers (where they can be
retrieved via the pcap_next_ex () call)?
pcap_next_ex becomes a polling function: it will return immediately, even if there are no available packets. It's something that you definitely want to avoid if possible.
Is the
pcap_setmintocopy () call still relevant in such a (non-
blocking) configuration?
the mintocopy value is not relevant as far as pcap_next_ex() is concerned. It's still in use if you obtain the read event handle (pcap_getevent()), and wait on it before receiving packets. This event gets signalled when at least mintocopy bytes are available in the kernel capture buffer.
What role does the
PCAP_OPENFLAG_MAX_RESPONSIVENESS flag (specified in the
'flags' parameter in the call to pcap_open ()) play?
PCAP_OPENFLAG_MAX_RESPONSIVENESS sets the mintocopy value to 0. If you set a mintocopy to 0 and a timeout > 0, pcap_next_ex() will block until the timeout elapses or at least one packet has been received.
Also, one of the papers at this site talks about an API
call to set the size of the user buffer. However, I
wasn't able to find any such function in the WinPcap
documentation. Can you please point me to the relevant
function?
The function is called pcap_setuserbuffer() (int pcap_setuserbuffer(pcap_t *p, int size)). It's exported by WinPcap but it has never been documented.
Have a nice day
GV
Thanks,
Samir
------------------------------------------------------------------------------
8:00? 8:25? 8:40? Find a flick in no time
with theYahoo! Search movie showtime shortcut.
------------------------------------------------------------------------------
_______________________________________________
Winpcap-users mailing list
Winpcap-users at winpcap.org
https://www.winpcap.org/mailman/listinfo/winpcap-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20070511/fdc433a6/attachment.htm
More information about the Winpcap-users
mailing list