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

# pcap-remote.h File Reference

`#include "pcap.h"`
`#include "sockutils.h"`

Go to the source code of this file.

## Data Structures
struct | activehosts
| Keeps a list of all the opened connections in the active mode. More...
struct | rpcap_auth
| Structure that keeps the data required for the authentication on the remote host. More...
struct | rpcap_filter
| General header used for the pcap_setfilter() command; keeps just the number of BPF instructions. More...
struct | rpcap_filterbpf_insn
| Structure that keeps a single BPF instuction; it is repeated 'ninsn' times according to the 'rpcap_filterbpf' header. More...
struct | rpcap_findalldevs_if
| Format of the message for the interface description (findalldevs command). More...
struct | rpcap_findalldevs_ifaddr
| Format of the message for the address listing (findalldevs command). More...
struct | rpcap_header
| Common header for all the RPCAP messages. More...
struct | rpcap_openreply
| Format of the message of the connection opening reply (open command). More...
struct | rpcap_pkthdr
| Format of the header which encapsulates captured packets when transmitted on the network. More...
struct | rpcap_sampling
| Structure that is needed to set sampling parameters. More...
struct | rpcap_startcapreply
| Format of the reply message that devoted to start a remote capture (startcap reply command). More...
struct | rpcap_startcapreq
| Format of the message that starts a remote capture (startcap command). More...
struct | rpcap_stats
| Structure that keeps the statistics about the number of packets captured, dropped, etc. More...
## Defines
#define | RPCAP_DEFAULT_NETPORT "2002"
#define | RPCAP_DEFAULT_NETPORT_ACTIVE "2003"
#define | RPCAP_DEFAULT_NETADDR ""
#define | RPCAP_VERSION 0
#define | RPCAP_TIMEOUT_INIT 90
#define | RPCAP_TIMEOUT_RUNTIME 180
#define | RPCAP_ACTIVE_WAIT 30
#define | RPCAP_SUSPEND_WRONGAUTH 1
#define | RPCAP_NETBUF_SIZE 64000
| Buffer used by socket functions to send-receive packets. In case you plan to have messages larger than this value, you have to increase it.
#define | RPCAP_HOSTLIST_SEP " ,;\n\r"
| Separators used for the host list.
#define | RPCAP_MSG_ERROR 1
#define | RPCAP_MSG_FINDALLIF_REQ 2
#define | RPCAP_MSG_OPEN_REQ 3
#define | RPCAP_MSG_STARTCAP_REQ 4
#define | RPCAP_MSG_UPDATEFILTER_REQ 5
#define | RPCAP_MSG_CLOSE 6
#define | RPCAP_MSG_PACKET 7
#define | RPCAP_MSG_AUTH_REQ 8
#define | RPCAP_MSG_STATS_REQ 9
#define | RPCAP_MSG_ENDCAP_REQ 10
#define | RPCAP_MSG_SETSAMPLING_REQ 11
#define | RPCAP_MSG_FINDALLIF_REPLY (128+RPCAP_MSG_FINDALLIF_REQ)
#define | RPCAP_MSG_OPEN_REPLY (128+RPCAP_MSG_OPEN_REQ)
#define | RPCAP_MSG_STARTCAP_REPLY (128+RPCAP_MSG_STARTCAP_REQ)
#define | RPCAP_MSG_UPDATEFILTER_REPLY (128+RPCAP_MSG_UPDATEFILTER_REQ)
#define | RPCAP_MSG_AUTH_REPLY (128+RPCAP_MSG_AUTH_REQ)
#define | RPCAP_MSG_STATS_REPLY (128+RPCAP_MSG_STATS_REQ)
#define | RPCAP_MSG_ENDCAP_REPLY (128+RPCAP_MSG_ENDCAP_REQ)
#define | RPCAP_MSG_SETSAMPLING_REPLY (128+RPCAP_MSG_SETSAMPLING_REQ)
#define | RPCAP_STARTCAPREQ_FLAG_PROMISC 1
#define | RPCAP_STARTCAPREQ_FLAG_DGRAM 2
#define | RPCAP_STARTCAPREQ_FLAG_SERVEROPEN 4
#define | RPCAP_STARTCAPREQ_FLAG_INBOUND 8
#define | RPCAP_STARTCAPREQ_FLAG_OUTBOUND 16
#define | RPCAP_UPDATEFILTER_BPF 1
#define | PCAP_ERR_NETW 1
#define | PCAP_ERR_INITTIMEOUT 2
#define | PCAP_ERR_AUTH 3
#define | PCAP_ERR_FINDALLIF 4
#define | PCAP_ERR_NOREMOTEIF 5
#define | PCAP_ERR_OPEN 6
#define | PCAP_ERR_UPDATEFILTER 7
#define | PCAP_ERR_GETSTATS 8
#define | PCAP_ERR_READEX 9
#define | PCAP_ERR_HOSTNOAUTH 10
#define | PCAP_ERR_REMOTEACCEPT 11
#define | PCAP_ERR_STARTCAPTURE 12
#define | PCAP_ERR_ENDCAPTURE 13
#define | PCAP_ERR_RUNTIMETIMEOUT 14
#define | PCAP_ERR_SETSAMPLING 15
#define | PCAP_ERR_WRONGMSG 16
#define | PCAP_ERR_WRONGVER 17
## Typedefs
typedef unsigned char | uint8
| Provides an 8-bits unsigned integer.
typedef unsigned short | uint16
| Provides a 16-bits unsigned integer.
typedef unsigned int | uint32
| Provides a 32-bits unsigned integer.
typedef int | int32
| Provides a 32-bits integer.
## Functions
pcap_t * | pcap_opensource_remote (const char *source, struct pcap_rmtauth *auth, char *errbuf)
| It opens a remote adapter by opening an RPCAP connection and so on.
int | pcap_startcapture_remote (pcap_t *fp)
| It starts a remote capture.
int | pcap_read_nocb_remote (pcap_t *p, struct pcap_pkthdr **pkt_header, u_char **pkt_data)
| It reads a packet from the network socket. This does not make use of callback (hence the "nocb" string into its name).
int | pcap_read_remote (pcap_t *p, int cnt, pcap_handler callback, u_char *user)
| It reads a packet from the network socket.
int | pcap_updatefilter_remote (pcap_t *fp, struct bpf_program *prog)
| Update a filter on a remote host.
int | pcap_setfilter_remote (pcap_t *fp, struct bpf_program *prog)
| Send a filter to a remote host.
int | pcap_stats_remote (pcap_t *p, struct pcap_stat *ps)
| It retrieves network statistics from the other peer.
int | pcap_setsampling_remote (pcap_t *p)
| Set sampling parameters in the remote host.
pcap_stat * | pcap_stats_ex_remote (pcap_t *p)
| It retrieves network statistics from the other peer.
void | pcap_close_remote (pcap_t *p)
| It sends a CLOSE command to the capture server.
void | rpcap_createhdr (struct rpcap_header *header, uint8 type, uint16 value, uint32 length)
| Creates a structure of type rpcap_header.
int | rpcap_deseraddr (struct sockaddr_storage *sockaddrin, struct sockaddr_storage **sockaddrout, char *errbuf)
| It traslates (i.e. de-serializes) a 'sockaddr_storage' structure from the network byte order to the host byte order.
int | rpcap_checkmsg (char *errbuf, SOCKET sock, struct rpcap_header *header, uint8 first,...)
| Checks if the header of the received message is correct.
int | rpcap_senderror (SOCKET sock, char *error, unsigned short errcode, char *errbuf)
| It sends a RPCAP error to the other peer.
int | rpcap_sendauth (SOCKET sock, struct pcap_rmtauth *auth, char *errbuf)
| Sends the authentication message.
int | rpcap_remoteact_getsock (const char *host, char *errbuf)
| It returns the socket currently used for this active connection (active mode only).

## Detailed Description

This file keeps all the new definitions and typedefs that are exported to the user and that are needed for the RPCAP protocol.

Warning:
  All the RPCAP functions that are allowed to return a buffer containing the error description can return max PCAP_ERRBUF_SIZE characters. However there is no guarantees that the string will be zero-terminated. Best practice is to define the errbuf variable as a char of size 'PCAP_ERRBUF_SIZE+1' and to insert manually the termination char at the end of the buffer. This will guarantee that no buffer overflows occur even if we use the printf() to show the error on the screen.

  This file declares some typedefs that MUST be of a specific size. These definitions (i.e. typedefs) could need to be changed on other platforms than Intel IA32.

  This file defines some structures that are used to transfer data on the network. Be careful that you compiler MUST not insert padding into these structures for better alignment. These structures have been created in order to be correctly aligned to a 32 bits boundary, but be careful in any case.

Definition in file pcap-remote.h.

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