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_header
| Common header for all the RPCAP messages. 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_openreply
| Format of the message of the connection opening reply (open command). More...
struct | rpcap_startcapreq
| Format of the message that starts a remote capture (startcap command). More...
struct | rpcap_startcapreply
| Format of the reply message that devoted to start a remote capture (startcap reply command). More...
struct | rpcap_pkthdr
| Format of the header which encapsulates captured packets when transmitted on the network. 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_auth
| Structure that keeps the data required for the authentication on the remote host. More...
struct | rpcap_stats
| Structure that keeps the statistics about the number of packets captured, dropped, etc. More...
struct | rpcap_sampling
| Structure that is needed to set sampling parameters. More...
## Defines
#define | RPCAP_DEFAULT_NETPORT "2002" /*!< Default port on which the RPCAP daemon is waiting for connections. */
#define | RPCAP_DEFAULT_NETPORT_ACTIVE "2003"
#define | RPCAP_DEFAULT_NETADDR "" /*!< Default network address on which the RPCAP daemon binds to. */
#define | RPCAP_VERSION 0 /*!< Present version of the RPCAP protocol (0 = Experimental). */
#define | RPCAP_TIMEOUT_INIT 90 /*!< Initial timeout for RPCAP connections (default: 90 sec) */
#define | RPCAP_TIMEOUT_RUNTIME 180 /*!< Run-time timeout for RPCAP connections (default: 3 min) */
#define | RPCAP_ACTIVE_WAIT 30 /*!< Waiting time betweek two attempts to open a connection, in active mode (default: 30 sec) */
#define | RPCAP_SUSPEND_WRONGAUTH 1 /*!< If the authentication is wrong, stops 1 sec before accepting a new auth message */
#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 /*!< Message that keeps an error notification */
#define | RPCAP_MSG_FINDALLIF_REQ 2 /*!< Request to list all the remote interfaces */
#define | RPCAP_MSG_OPEN_REQ 3 /*!< Request to open a remote device */
#define | RPCAP_MSG_STARTCAP_REQ 4 /*!< Request to start a capture on a remote device */
#define | RPCAP_MSG_UPDATEFILTER_REQ 5 /*!< Send a compiled filter into the remote device */
#define | RPCAP_MSG_CLOSE 6 /*!< Close the connection with the remote peer */
#define | RPCAP_MSG_PACKET 7 /*!< This is a 'data' message, which carries a network packet */
#define | RPCAP_MSG_AUTH_REQ 8 /*!< Message that keeps the authentication parameters */
#define | RPCAP_MSG_STATS_REQ 9 /*!< It requires to have network statistics */
#define | RPCAP_MSG_ENDCAP_REQ 10 /*!< Stops the current capture, keeping the device open */
#define | RPCAP_MSG_SETSAMPLING_REQ 11 /*!< Sset sampling parameters */
#define | RPCAP_MSG_FINDALLIF_REPLY (128+RPCAP_MSG_FINDALLIF_REQ) /*!< Keeps the list of all the remote interfaces */
#define | RPCAP_MSG_OPEN_REPLY (128+RPCAP_MSG_OPEN_REQ) /*!< The remote device has been opened correctly */
#define | RPCAP_MSG_STARTCAP_REPLY (128+RPCAP_MSG_STARTCAP_REQ) /*!< The capture is staarting correctly */
#define | RPCAP_MSG_UPDATEFILTER_REPLY (128+RPCAP_MSG_UPDATEFILTER_REQ) /*!< The filter has been applied correctly on the remote device */
#define | RPCAP_MSG_AUTH_REPLY (128+RPCAP_MSG_AUTH_REQ) /*!< Sends a message that says 'ok, authorization successful' */
#define | RPCAP_MSG_STATS_REPLY (128+RPCAP_MSG_STATS_REQ) /*!< Message that keeps the network statistics */
#define | RPCAP_MSG_ENDCAP_REPLY (128+RPCAP_MSG_ENDCAP_REQ) /*!< Confirms that the capture stopped succesfully */
#define | RPCAP_MSG_SETSAMPLING_REPLY (128+RPCAP_MSG_SETSAMPLING_REQ) /*!< Confirms that the capture stopped succesfully */
#define | RPCAP_STARTCAPREQ_FLAG_PROMISC 1 /*!< Enables promiscuous mode (default: disabled) */
#define | RPCAP_STARTCAPREQ_FLAG_DGRAM 2 /*!< Use a datagram (i.e. UDP) connection for the data stream (default: use TCP)*/
#define | RPCAP_STARTCAPREQ_FLAG_SERVEROPEN 4 /*!< The server has to open the data connection toward the client */
#define | RPCAP_STARTCAPREQ_FLAG_INBOUND 8 /*!< Capture only inbound packets (take care: the flag has no effects with promiscuous enabled) */
#define | RPCAP_STARTCAPREQ_FLAG_OUTBOUND 16 /*!< Capture only outbound packets (take care: the flag has no effects with promiscuous enabled) */
#define | RPCAP_UPDATEFILTER_BPF 1 /*!< This code tells us that the filter is encoded with the BPF/NPF syntax */
#define | PCAP_ERR_NETW 1 /*!< Network error */
#define | PCAP_ERR_INITTIMEOUT 2 /*!< The RPCAP initial timeout has expired */
#define | PCAP_ERR_AUTH 3 /*!< Generic authentication error */
#define | PCAP_ERR_FINDALLIF 4 /*!< Generic findalldevs error */
#define | PCAP_ERR_NOREMOTEIF 5 /*!< The findalldevs was ok, but the remote end had no interfaces to list */
#define | PCAP_ERR_OPEN 6 /*!< Generic pcap_open error */
#define | PCAP_ERR_UPDATEFILTER 7 /*!< Generic updatefilter error */
#define | PCAP_ERR_GETSTATS 8 /*!< Generic pcap_stats error */
#define | PCAP_ERR_READEX 9 /*!< Generic pcap_next_ex error */
#define | PCAP_ERR_HOSTNOAUTH 10 /*!< The host is not authorized to connect to this server */
#define | PCAP_ERR_REMOTEACCEPT 11 /*!< Generic pcap_remoteaccept error */
#define | PCAP_ERR_STARTCAPTURE 12 /*!< Generic pcap_startcapture error */
#define | PCAP_ERR_ENDCAPTURE 13 /*!< Generic pcap_endcapture error */
#define | PCAP_ERR_RUNTIMETIMEOUT 14 /*!< The RPCAP run-time timeout has expired */
#define | PCAP_ERR_SETSAMPLING 15 /*!< Error diring the settings of sampling parameters */
#define | PCAP_ERR_WRONGMSG 16 /*!< The other end endpoint sent a message which has not been recognized */
#define | PCAP_ERR_WRONGVER 17 /*!< The other end endpoint ahs a version number that is not compatible with our */
## 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)
int | pcap_startcapture_remote (pcap_t *fp)
int | pcap_read_nocb_remote (pcap_t *p, struct pcap_pkthdr **pkt_header, u_char **pkt_data)
int | pcap_read_remote (pcap_t *p, int cnt, pcap_handler callback, u_char *user)
int | pcap_updatefilter_remote (pcap_t *fp, struct bpf_program *prog)
int | pcap_setfilter_remote (pcap_t *fp, struct bpf_program *prog)
int | pcap_stats_remote (pcap_t *p, struct pcap_stat *ps)
int | pcap_setsampling_remote (pcap_t *p)
pcap_stat * | pcap_stats_ex_remote (pcap_t *p)
void | pcap_close_remote (pcap_t *p)
void | rpcap_createhdr (struct rpcap_header *header, uint8 type, uint16 value, uint32 length)
int | rpcap_deseraddr (struct sockaddr_storage *sockaddrin, struct sockaddr_storage **sockaddrout, char *errbuf)
int | rpcap_checkmsg (char *errbuf, SOCKET sock, struct rpcap_header *header, uint8 first,...)
int | rpcap_senderror (SOCKET sock, char *error, unsigned short errcode, char *errbuf)
int | rpcap_sendauth (SOCKET sock, struct pcap_rmtauth *auth, char *errbuf)
int | rpcap_remoteact_getsock (const char *host, char *errbuf)

## 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.

## Function Documentation

void pcap_close_remote | ( | pcap_t * | p | ) |

pcap_t* pcap_opensource_remote | ( | const char * | source,
|  | struct pcap_rmtauth * | auth,
|  | char * | errbuf
| ) |

int pcap_read_nocb_remote | ( | pcap_t * | p,
|  | struct pcap_pkthdr ** | pkt_header,
|  | u_char ** | pkt_data
| ) |

int pcap_read_remote | ( | pcap_t * | p,
|  | int | cnt,
|  | pcap_handler | callback,
|  | u_char * | user
| ) |

int pcap_setfilter_remote | ( | pcap_t * | fp,
|  | struct bpf_program * | prog
| ) |

int pcap_setsampling_remote | ( | pcap_t * | p | ) |

int pcap_startcapture_remote | ( | pcap_t * | fp | ) |

struct pcap_stat* pcap_stats_ex_remote | ( | pcap_t * | p | ) |

int pcap_stats_remote | ( | pcap_t * | p,
|  | struct pcap_stat * | ps
| ) |

int pcap_updatefilter_remote | ( | pcap_t * | fp,
|  | struct bpf_program * | prog
| ) |

int rpcap_checkmsg | ( | char * | errbuf,
|  | SOCKET | sock,
|  | struct rpcap_header * | header,
|  | uint8 | first,
|  |  | ...
| ) |

void rpcap_createhdr | ( | struct rpcap_header * | header,
|  | uint8 | type,
|  | uint16 | value,
|  | uint32 | length
| ) |

int rpcap_deseraddr | ( | struct sockaddr_storage * | sockaddrin,
|  | struct sockaddr_storage ** | sockaddrout,
|  | char * | errbuf
| ) |

int rpcap_remoteact_getsock | ( | const char * | host,
|  | char * | errbuf
| ) |

int rpcap_sendauth | ( | SOCKET | sock,
|  | struct pcap_rmtauth * | auth,
|  | char * | errbuf
| ) |

int rpcap_senderror | ( | SOCKET | sock,
|  | char * | error,
|  | unsigned short | errcode,
|  | char * | errbuf
| ) |

documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005 CACE technologies. All rights reserved.