OpenVAS Scanner
7.0.0~git
|
#include "bpf_share.h"
#include "network.h"
#include "pcap_openvas.h"
#include "support.h"
#include <arpa/inet.h>
#include <gvm/base/logging.h>
#include <gvm/base/networking.h>
#include <ifaddrs.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/in.h>
#include <pcap.h>
#include <resolv.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/types.h>
#include <unistd.h>
Go to the source code of this file.
Data Structures | |
struct | interface_info |
struct | myroute |
Macros | |
#define | MAXROUTES 1024 |
#define | G_LOG_DOMAIN "lib misc" |
GLib logging domain. More... | |
Functions | |
struct interface_info * | getinterfaces (int *howmany) |
struct interface_info * | v6_getinterfaces (int *howmany) |
int | getipv6routes (struct myroute *myroutes, int *numroutes) |
static void | ipv6addrmask (struct in6_addr *in6addr, int mask) |
int | v6_is_local_ip (struct in6_addr *addr) |
int | v6_ipaddr2devname (char *dev, int sz, struct in6_addr *addr) |
int | ipaddr2devname (char *dev, int sz, struct in_addr *addr) |
int | v6_islocalhost (struct in6_addr *addr) |
Tests whether a packet sent to IP is LIKELY to route through the kernel localhost interface. More... | |
int | islocalhost (struct in_addr *addr) |
Tests whether a packet sent to IP is LIKELY to route through the kernel localhost interface. More... | |
int | get_datalink_size (int datalink) |
int | v6_getsourceip (struct in6_addr *src, struct in6_addr *dst) |
int | getipv4routes (struct myroute *myroutes, int *numroutes) |
char * | v6_routethrough (struct in6_addr *dest, struct in6_addr *source) |
An awesome function to determine what interface a packet to a given destination should be routed through. More... | |
char * | routethrough (struct in_addr *dest, struct in_addr *source) |
An awesome function to determine what interface a packet to a given destination should be routed through. More... | |
int get_datalink_size | ( | int | datalink | ) |
Definition at line 295 of file pcap.c.
Referenced by capture_next_packet(), capture_next_v6_packet(), nasl_pcap_next(), nasl_send_capture(), and scan().
struct interface_info * getinterfaces | ( | int * | howmany | ) |
[out] | howmany | Return location for the number of interfaces found (might be NULL). |
Definition at line 410 of file pcap.c.
References interface_info::name, and name.
Referenced by ipaddr2devname(), and routethrough().
int getipv4routes | ( | struct myroute * | myroutes, |
int * | numroutes | ||
) |
Definition at line 570 of file pcap.c.
References myroute::dest6, myroute::dev, myroute::mask, MAXROUTES, name, and v6_getinterfaces().
Referenced by v6_routethrough().
int getipv6routes | ( | struct myroute * | myroutes, |
int * | numroutes | ||
) |
Definition at line 686 of file pcap.c.
References myroute::dev, myroute::mask, MAXROUTES, name, and v6_getinterfaces().
Referenced by v6_is_local_ip(), and v6_routethrough().
int ipaddr2devname | ( | char * | dev, |
int | sz, | ||
struct in_addr * | addr | ||
) |
Definition at line 204 of file pcap.c.
References interface_info::addr, getinterfaces(), and name.
Referenced by islocalhost().
|
static |
Definition at line 74 of file pcap.c.
References interface_info::addr, and interface_info::mask.
Referenced by v6_is_local_ip(), and v6_routethrough().
int islocalhost | ( | struct in_addr * | addr | ) |
Tests whether a packet sent to IP is LIKELY to route through the kernel localhost interface.
Definition at line 268 of file pcap.c.
References interface_info::addr, and ipaddr2devname().
Referenced by init_capture_device(), nasl_send_packet(), nasl_tcp_ping(), plugin_run_synscan(), and routethrough().
char* routethrough | ( | struct in_addr * | dest, |
struct in_addr * | source | ||
) |
An awesome function to determine what interface a packet to a given destination should be routed through.
It returns NULL if no appropriate interface is found, otherwise it returns the device name and fills in the source parameter. Some of the stuff is from Stevens' Unix Network Programming V2. He had an easier suggestion for doing this (in the book), but it isn't portable :(
Definition at line 975 of file pcap.c.
References myroute::dest, myroute::dev, getinterfaces(), islocalhost(), myroute::mask, MAXROUTES, interface_info::name, and name.
Referenced by init_capture_device(), nasl_pcap_next(), nasl_send_capture(), nasl_tcp_ping(), and openbpf().
struct interface_info * v6_getinterfaces | ( | int * | howmany | ) |
Definition at line 335 of file pcap.c.
References interface_info::addr6, interface_info::mask, and name.
Referenced by getipv4routes(), getipv6routes(), v6_ipaddr2devname(), v6_is_local_ip(), and v6_routethrough().
int v6_getsourceip | ( | struct in6_addr * | src, |
struct in6_addr * | dst | ||
) |
Definition at line 478 of file pcap.c.
References name.
Referenced by nasl_this_host(), and v6_routethrough().
int v6_ipaddr2devname | ( | char * | dev, |
int | sz, | ||
struct in6_addr * | addr | ||
) |
Definition at line 173 of file pcap.c.
References interface_info::addr, interface_info::addr6, name, and v6_getinterfaces().
Referenced by v6_islocalhost().
int v6_is_local_ip | ( | struct in6_addr * | addr | ) |
Definition at line 117 of file pcap.c.
References getipv6routes(), ipv6addrmask(), MAXROUTES, name, and v6_getinterfaces().
Referenced by nasl_islocalnet().
int v6_islocalhost | ( | struct in6_addr * | addr | ) |
Tests whether a packet sent to IP is LIKELY to route through the kernel localhost interface.
Definition at line 231 of file pcap.c.
References interface_info::addr, and v6_ipaddr2devname().
Referenced by init_v6_capture_device(), nasl_islocalhost(), nasl_send_v6packet(), nasl_tcp_v6_ping(), nasl_this_host(), and v6_routethrough().
char* v6_routethrough | ( | struct in6_addr * | dest, |
struct in6_addr * | source | ||
) |
An awesome function to determine what interface a packet to a given destination should be routed through.
It returns NULL if no appropriate interface is found, otherwise it returns the device name and fills in the source parameter. Some of the stuff is from Stevens' Unix Network Programming V2. He had an easier suggestion for doing this (in the book), but it isn't portable :(
Definition at line 789 of file pcap.c.
References myroute::dev, getipv4routes(), getipv6routes(), ipv6addrmask(), MAXROUTES, interface_info::name, v6_getinterfaces(), v6_getsourceip(), and v6_islocalhost().
Referenced by init_v6_capture_device(), nasl_pcap_next(), nasl_send_capture(), nasl_tcp_v6_ping(), and v6_openbpf().