#include <pcap.h>
#include <pcap-int.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "pcap-remote.h"
#include "daemon.h"
#include "sockutils.h"
Go to the source code of this file.
Functions | |
int | daemon_checkauth (SOCKET sockctrl, int nullAuthAllowed, char *errbuf) |
It checks if the authentication credentials supplied by the user are valid. | |
int | daemon_AuthUserPwd (char *username, char *password, char *errbuf) |
int | daemon_findalldevs (SOCKET sockctrl, char *errbuf) |
int | daemon_opensource (SOCKET sockctrl, char *source, int srclen, uint32 plen, char *errbuf) |
pcap_t * | daemon_startcapture (SOCKET sockctrl, char *source, int active, uint32 plen, char *errbuf) |
int | daemon_endcapture (pcap_t *fp, char *errbuf) |
int | daemon_updatefilter (pcap_t *fp, uint32 plen) |
int | daemon_unpackapplyfilter (pcap_t *fp, unsigned int *nread, int *plen, char *errbuf) |
int | daemon_getstats (pcap_t *fp) |
int | daemon_getstatsnopcap (SOCKET sockctrl, unsigned int ifdrops, unsigned int ifrecv, unsigned int krnldrop, unsigned int svrcapt, char *errbuf) |
void | daemon_seraddr (struct sockaddr_storage *sockaddrin, struct sockaddr_storage *sockaddrout) |
It serializes a network address. | |
void | daemon_thrdatamain (void *ptr) |
void | daemon_serviceloop (void *ptr) |
Main serving funtion This function is the one which does the job. It is the main() of the child thread, which is created as soon as a new connection is accepted. | |
Variables | |
char | fakeerrbuf [PCAP_ERRBUF_SIZE+1] |
|
Definition at line 599 of file daemon.c. References pcap_strerror(), and snprintf. Referenced by daemon_checkauth(). |
|
It checks if the authentication credentials supplied by the user are valid. This function is called each time the rpcap daemon starts a new serving thread. It reads the authentication message from the network and it checks that the user information are valid.
Definition at line 444 of file daemon.c. References daemon_AuthUserPwd(), nullAuthAllowed, pcap_strerror(), rpcap_checkmsg(), rpcap_createhdr(), RPCAP_MSG_AUTH_REQ, RPCAP_MSG_CLOSE, RPCAP_MSG_ERROR, RPCAP_RMTAUTH_NULL, RPCAP_RMTAUTH_PWD, snprintf, SOCK_ASSERT, sock_discard(), sock_recv(), and sock_send(). Referenced by daemon_serviceloop(). |
|
Definition at line 1116 of file daemon.c. References pcap_close(), rpcap_createhdr(), sock_close(), sock_send(), and SOCKET. Referenced by daemon_serviceloop(). |
|
Definition at line 692 of file daemon.c. References address, pcap_if::addresses, daemon_seraddr(), rpcap_findalldevs_if::desclen, pcap_if::description, pcap_if::flags, rpcap_findalldevs_if::flags, rpcap_findalldevs_if::naddr, pcap_if::name, rpcap_findalldevs_if::namelen, pcap_if::next, pcap_findalldevs(), pcap_freealldevs(), rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), sock_bufferize(), sock_send(), and uint16. Referenced by daemon_serviceloop(). |
|
Definition at line 1248 of file daemon.c. References rpcap_stats::ifdrop, rpcap_stats::ifrecv, rpcap_stats::krnldrop, pcap_stats(), pcap_stat::ps_drop, pcap_stat::ps_ifdrop, pcap_stat::ps_recv, rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), sock_bufferize(), sock_send(), and rpcap_stats::svrcapt. Referenced by daemon_serviceloop(). |
|
Definition at line 1287 of file daemon.c. References rpcap_stats::ifdrop, rpcap_stats::ifrecv, rpcap_stats::krnldrop, rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), sock_bufferize(), sock_send(), and rpcap_stats::svrcapt. Referenced by daemon_serviceloop(). |
|
Definition at line 820 of file daemon.c. References rpcap_openreply::linktype, pcap_close(), pcap_open(), pcap_t, rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), sock_bufferize(), sock_discard(), sock_recv(), sock_send(), and rpcap_openreply::tzoff. Referenced by daemon_serviceloop(). |
|
It serializes a network address. It accepts a 'sockaddr_storage' structure as input, and it converts it appropriately into a format that can be used to be sent on the network. Basically, it applies all the hton() conversion required to the input variable.
Definition at line 1421 of file daemon.c. Referenced by daemon_findalldevs(). |
|
|
Definition at line 903 of file daemon.c. References rpcap_startcapreply::bufsize, daemon_unpackapplyfilter(), PCAP_BUF_SIZE, pcap_close(), pcap_open(), pcap_t, rpcap_startcapreply::portdata, rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), RPCAP_STARTCAPREQ_FLAG_DGRAM, RPCAP_STARTCAPREQ_FLAG_SERVEROPEN, snprintf, sock_bufferize(), sock_close(), sock_discard(), sock_geterror(), sock_open(), sock_recv(), sock_send(), sock_validaddr(), and SOCKET. Referenced by daemon_serviceloop(). |
|
Definition at line 1323 of file daemon.c. References rpcap_pkthdr::caplen, pcap_pkthdr::caplen, errbuf, pcap_pkthdr::len, rpcap_pkthdr::len, rpcap_pkthdr::npkt, PCAP_ERRBUF_SIZE, pcap_geterr(), pcap_next_ex(), pcap_t, rpcap_createhdr(), RPCAP_NETBUF_SIZE, rpcap_senderror(), snprintf, SOCK_ASSERT, sock_bufferize(), sock_send(), rpcap_pkthdr::timestamp_sec, rpcap_pkthdr::timestamp_usec, and pcap_pkthdr::ts. |
|
Definition at line 1147 of file daemon.c. References bpf_program::bf_len, bpf_validate(), bpf_insn::code, bpf_insn::jf, bpf_insn::jt, bpf_insn::k, pcap_setfilter(), pcap_strerror(), RPCAP_UPDATEFILTER_BPF, snprintf, and sock_recv(). Referenced by daemon_startcapture(), and daemon_updatefilter(). |
|
Definition at line 1210 of file daemon.c. References daemon_unpackapplyfilter(), rpcap_createhdr(), rpcap_senderror(), sock_discard(), and sock_send(). Referenced by daemon_serviceloop(). |
|
|
documentation. Copyright (c) 2002-2003 Politecnico di Torino. All rights reserved.