Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

Pcap-win32.c File Reference

#include <pcap-int.h>
#include <packet32.h>
#include <Ntddndis.h>

Go to the source code of this file.

Defines

#define PcapBufSize   256000
#define SIZE_BUF   1000000
#define bhp   ((struct bpf_hdr *)bp)

Functions

int wsockinit ()
int pcap_stats (pcap_t *p, struct pcap_stat *ps)
  Discouraged, Use pcap_stats_ex() instead.
Returns statistics on current capture.


int pcap_read (pcap_t *p, int cnt, pcap_handler callback, u_char *user)
pcap_tpcap_open_live (const char *device, int snaplen, int promisc, int to_ms, char *ebuf)
int pcap_setfilter (pcap_t *p, struct bpf_program *fp)
 Associates a filter to a capture.

int pcap_setmode (pcap_t *p, int mode)
 Win32 Specific. Sets the working mode of the interface p to mode.

int pcap_sendpacket (pcap_t *p, u_char *buf, int size)
 Win32 Specific. Sends a raw packet.

int pcap_setbuff (pcap_t *p, int dim)
 Win32 Specific. Sets the size of the kernel buffer associated with an adapter.

int pcap_setmintocopy (pcap_t *p, int size)
 Win32 Specific. Sets the minumum amount of data received by the kernel in a single call.

int pcap_set_datalink_platform (pcap_t *p, int dlt)

Variables

const char rcsid []


Define Documentation

#define bhp   ((struct bpf_hdr *)bp)
 

#define PcapBufSize   256000
 

Definition at line 39 of file Pcap-win32.c.

Referenced by pcap_open_live().

#define SIZE_BUF   1000000
 

Definition at line 40 of file Pcap-win32.c.


Function Documentation

pcap_t* pcap_open_live const char *    device,
int    snaplen,
int    promisc,
int    to_ms,
char *    ebuf
 

Definition at line 144 of file Pcap-win32.c.

References host, NetType::LinkType, PacketAllocatePacket(), PacketCloseAdapter(), PacketGetNetType(), PacketInitPacket(), PacketOpenAdapter(), PacketSetBuff(), PacketSetHwFilter(), PacketSetMinToCopy(), PacketSetReadTimeout(), PCAP_BUF_SIZE, PCAP_OPENFLAG_PROMISCUOUS, pcap_opensource_remote(), pcap_parsesrcstr(), PCAP_SRC_IFREMOTE, pcap_strerror(), pcap_t, pcap_win32strerror(), PcapBufSize, port, snprintf, and wsockinit().

Referenced by add_or_find_if(), main(), and pcap_open().

int pcap_read pcap_t   p,
int    cnt,
pcap_handler    callback,
u_char *    user
 

Definition at line 79 of file Pcap-win32.c.

References n, PacketReceivePacket(), pcap_read_remote(), pcap_startcapture_remote(), and snprintf.

Referenced by pcap_dispatch(), pcap_loop(), and pcap_next_ex().

int pcap_sendpacket pcap_t   p,
u_char *    buf,
int    size
 

Win32 Specific. Sends a raw packet.

This function allows to send a raw packet to the network. p is the interface that will be used to send the packet, buf contains the data of the packet to send (including the various protocol headers), size is the dimension of the buffer pointed by buf, i.e. the size of the packet to send. The MAC CRC doesn't need to be included, because it is transparently calculated and added by the network interface driver. The return value is 0 if the packet is succesfully sent, -1 otherwise.

See also:
pcap_open_live()

Definition at line 337 of file Pcap-win32.c.

References PacketAllocatePacket(), PacketFreePacket(), PacketInitPacket(), PacketSendPacket(), and snprintf.

int pcap_set_datalink_platform pcap_t   p,
int    dlt
 

Definition at line 402 of file Pcap-win32.c.

Referenced by pcap_set_datalink().

int pcap_setbuff pcap_t   p,
int    dim
 

Win32 Specific. Sets the size of the kernel buffer associated with an adapter.

dim specifies the size of the buffer in bytes. The return value is 0 when the call succeeds, -1 otherwise. If an old buffer was already created with a previous call to pcap_setbuff(), it is deleted and its content is discarded. pcap_open_live() creates a 1 MByte buffer by default.

See also:
pcap_open_live(), pcap_loop(), pcap_dispatch()

Definition at line 359 of file Pcap-win32.c.

References PacketSetBuff(), and snprintf.

int pcap_setfilter pcap_t   p,
struct bpf_program   fp
 

Associates a filter to a capture.

pcap_setfilter() is used to specify a filter program. fp is a pointer to a bpf_program struct, usually the result of a call to pcap_compile(). -1 is returned on failure, in which case pcap_geterr() may be used to display the error text; 0 is returned on success.

See also:
pcap_compile(), pcap_compile_nopcap()

Definition at line 292 of file Pcap-win32.c.

References PacketSetBpf(), pcap_setfilter_remote(), pcap_win32strerror(), and snprintf.

Referenced by daemon_unpackapplyfilter(), and main().

int pcap_setmintocopy pcap_t   p,
int    size
 

Win32 Specific. Sets the minumum amount of data received by the kernel in a single call.

pcap_setmintocopy() changes the minimum amount of data in the kernel buffer that causes a read from the application to return (unless the timeout expires). If the value of size is large, the kernel is forced to wait the arrival of several packets before copying the data to the user. This guarantees a low number of system calls, i.e. low processor usage, and is a good setting for applications like packet-sniffers and protocol analyzers. Vice versa, in presence of a small value for this variable, the kernel will copy the packets as soon as the application is ready to receive them. This is useful for real time applications that need the best responsiveness from the kernel.

See also:
pcap_open_live(), pcap_loop(), pcap_dispatch()

Definition at line 385 of file Pcap-win32.c.

References PacketSetMinToCopy(), and snprintf.

int pcap_setmode pcap_t   p,
int    mode
 

Win32 Specific. Sets the working mode of the interface p to mode.

Valid values for mode are MODE_CAPT (default capture mode) and MODE_STAT (statistical mode). See the tutorial "Gathering Statistics on the network traffic " for details about statistical mode.

Definition at line 318 of file Pcap-win32.c.

References PacketSetMode(), and snprintf.

int pcap_stats pcap_t   p,
struct pcap_stat   ps
 

Discouraged, Use pcap_stats_ex() instead.
Returns statistics on current capture.

pcap_stats() returns 0 and fills in a pcap_stat struct. The values represent packet statistics from the start of the run to the time of the call. If there is an error or the underlying packet capture doesn't support packet statistics, -1 is returned and the error text can be obtained with pcap_perror() or pcap_geterr(). pcap_stats() is supported only on live captures, not on "savefiles"; no statistics are stored in "savefiles", so no statistics are available when reading from a "savefile".

See also:
pcap_stats_ex(), pcap_open_live()

Definition at line 60 of file Pcap-win32.c.

References PacketGetStats(), pcap_stats_remote(), pcap_win32strerror(), and snprintf.

Referenced by daemon_getstats(), and daemon_serviceloop().

int wsockinit  
 

Definition at line 44 of file Pcap-win32.c.

Referenced by pcap_open_live().


Variable Documentation

const char rcsid[] [static]
 

Initial value:

    "@(#) $Header: /tcpdump/master/libpcap/pcap-win32.c,v 1.6 2003/01/23 09:40:09 guy Exp $ (LBL)"

Definition at line 23 of file Pcap-win32.c.


documentation. Copyright (c) 2002-2003 Politecnico di Torino. All rights reserved.