#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <sys/types.h>
#include <ifaddrs.h>
#include <netdb.h>
#include <glib.h>
#include <errno.h>
#include <ctype.h>
#include <assert.h>
#include "array.h"
Go to the source code of this file.
Possible port types.
Used in Manager database. If any symbol changes then a migrator must be added to update existing data.
Enumerator |
---|
PORT_PROTOCOL_TCP |
|
PORT_PROTOCOL_UDP |
|
PORT_PROTOCOL_OTHER |
|
void ipv4_as_ipv6 |
( |
const struct in_addr * |
ip4, |
|
|
struct in6_addr * |
ip6 |
|
) |
| |
Maps an IPv4 address as an IPv6 address. eg. 192.168.10.20 would map to ::ffff:192.168.10.20.
- Parameters
-
[in] | ip4 | IPv4 address to map. |
[out] | ip6 | Buffer to store the IPv6 address. |
int openvas_resolve |
( |
const char * |
name, |
|
|
void * |
dst, |
|
|
int |
family |
|
) |
| |
Resolves a hostname to an IPv4 or IPv6 address.
- Parameters
-
[in] | name | Hostname to resolve. |
[out] | dst | Buffer to store resolved address. Size must be at least 4 bytes for AF_INET and 16 bytes for AF_INET6. |
[in] | family | Either AF_INET or AF_INET6. |
- Returns
- -1 if error, 0 otherwise.
int openvas_resolve_as_addr6 |
( |
const char * |
name, |
|
|
struct in6_addr * |
ip6 |
|
) |
| |
Resolves a hostname to an IPv4-mapped IPv6 or IPv6 address.
- Parameters
-
[in] | name | Hostname to resolve. |
[out] | ip6 | Buffer to store resolved address. |
- Returns
- -1 if error, 0 otherwise.
void openvas_source_addr |
( |
void * |
addr | ) |
|
Gives the source IPv4 address.
- Parameters
-
[out] | addr | Buffer of at least 4 bytes. |
void openvas_source_addr6 |
( |
void * |
addr6 | ) |
|
Gives the source IPv6 address.
- Parameters
-
[out] | addr6 | Buffer of at least 16 bytes. |
char* openvas_source_addr6_str |
( |
| ) |
|
Gives the source IPv6 address in string format.
- Returns
- Source IPv6 string. Free with g_free().
void openvas_source_addr_as_addr6 |
( |
struct in6_addr * |
addr6 | ) |
|
Gives the source IPv4 mapped as an IPv6 address. eg. 192.168.20.10 would map to ::ffff:192.168.20.10.
- Parameters
-
[out] | addr6 | Buffer of at least 16 bytes. |
char* openvas_source_addr_str |
( |
| ) |
|
Gives the source IPv4 address in string format.
- Returns
- Source IPv4 string. Free with g_free().
int openvas_source_iface_init |
( |
const char * |
iface | ) |
|
Initializes the source network interface name and related information.
- Parameters
-
[in] | iface | Name of network interface to use as source interface. |
- Returns
- 0 if success. If error, return 1 and reset source values to default.
int openvas_source_iface_is_set |
( |
| ) |
|
int openvas_source_set_socket |
( |
int |
socket, |
|
|
int |
port, |
|
|
int |
family |
|
) |
| |
Binds a socket to use the global source address.
- Parameters
-
[in] | socket | Socket to set source address for. |
[in] | port | Network port for socket. |
[in] | family | Family of socket. AF_INET or AF_INET6. |
- Returns
- 0 if success, -1 if error.
Checks if a port num is in port ranges array.
- Parameters
-
[in] | pnum | Port number. |
[in] | ptype | Port type. |
[in] | pranges | Array of port ranges. |
- Returns
- 1 if port in port ranges, 0 otherwise.
array_t* port_range_ranges |
( |
const char * |
port_range | ) |
|
Create a range array from a port_range string.
- Parameters
-
[in] | port_range | Valid port_range string. |
- Returns
- Range array.
int validate_port_range |
( |
const char * |
port_range | ) |
|
Validate a port range string.
Accepts ranges in form of "103,U:200-1024,3000-4000,T:3-4,U:7".
- Parameters
-
[in] | port_range | A port range. |
- Returns
- 0 success, 1 failed.