20#define FEATURE_HOSTS_ALLOWED_ONLY 1
26#define FEATURE_REVERSE_LOOKUP_EXCLUDED 1
29#include <netinet/in.h>
void gvm_hosts_shuffle(gvm_hosts_t *)
Randomizes the order of the hosts objects in the collection. Not to be used while iterating over the ...
Definition hosts.c:1382
void gvm_hosts_add(gvm_hosts_t *, gvm_host_t *)
Inserts a host object at the end of a hosts collection.
Definition hosts.c:962
int gvm_host_in_hosts(const gvm_host_t *, const struct in6_addr *, const gvm_hosts_t *)
Returns whether a host has an equal host in a hosts collection. eg. 192.168.10.1 has an equal in list...
Definition hosts.c:2219
void gvm_hosts_reverse(gvm_hosts_t *)
Reverses the order of the hosts objects in the collection. Not to be used while iterating over the si...
Definition hosts.c:1414
int gvm_hosts_exclude(gvm_hosts_t *, const char *)
Excludes a set of hosts provided as a string from a hosts collection. Not to be used while iterating ...
Definition hosts.c:1749
host_type
Definition hosts.h:34
@ HOST_TYPE_RANGE_SHORT
Definition hosts.h:38
@ HOST_TYPE_RANGE6_SHORT
Definition hosts.h:43
@ HOST_TYPE_RANGE_LONG
Definition hosts.h:39
@ HOST_TYPE_RANGE6_LONG
Definition hosts.h:42
@ HOST_TYPE_NAME
Definition hosts.h:35
@ HOST_TYPE_IPV6
Definition hosts.h:40
@ HOST_TYPE_CIDR6_BLOCK
Definition hosts.h:41
@ HOST_TYPE_MAX
Definition hosts.h:44
@ HOST_TYPE_IPV4
Definition hosts.h:36
@ HOST_TYPE_CIDR_BLOCK
Definition hosts.h:37
gvm_host_t * gvm_host_find_in_hosts(const gvm_host_t *, const struct in6_addr *, const gvm_hosts_t *)
Find the gvm_host_t from a gvm_hosts_t structure.
Definition hosts.c:2127
unsigned int gvm_hosts_removed(const gvm_hosts_t *)
Gets the count of single values in hosts string that were removed (duplicates / excluded....
Definition hosts.c:2097
gvm_host_t * gvm_duplicate_host(gvm_host_t *)
Creates a deep copy of a host. gvm_host_free has to be called on it.
Definition hosts.c:2176
GSList * gvm_hosts_resolve(gvm_hosts_t *)
Resolves host objects of type name in a hosts collection, replacing hostnames with IPv4 values....
Definition hosts.c:1440
int gvm_vhosts_exclude(gvm_host_t *, const char *)
Exclude a list of vhosts from a host's vhosts list.
Definition hosts.c:1508
void gvm_host_add_reverse_lookup(gvm_host_t *)
Add a host's reverse-lookup name to the vhosts list.
Definition hosts.c:1899
void gvm_hosts_move_current_host_to_end(gvm_hosts_t *)
Move the current gvm_host_t from a gvm_hosts_t structure to the end of the hosts list.
Definition hosts.c:1328
gvm_hosts_t * gvm_hosts_new_with_max(const gchar *, unsigned int)
Creates a new gvm_hosts_t structure and the associated hosts objects from the provided hosts_str.
Definition hosts.c:1099
int gvm_hosts_reverse_lookup_only(gvm_hosts_t *)
Removes hosts that don't reverse-lookup from the hosts collection. Not to be used while iterating ove...
Definition hosts.c:1982
gvm_hosts_t * gvm_hosts_reverse_lookup_unify_excluded(gvm_hosts_t *)
Removes hosts duplicates that reverse-lookup to the same value. Not to be used while iterating over t...
Definition hosts.c:2007
gchar * gvm_host_value_str(const gvm_host_t *)
Gets a host's value in printable format.
Definition hosts.c:2267
unsigned int gvm_hosts_count(const gvm_hosts_t *)
Gets the count of single hosts objects in a hosts collection.
Definition hosts.c:2083
gvm_host_t * gvm_hosts_next(gvm_hosts_t *)
Gets the next gvm_host_t from a gvm_hosts_t structure. The state of iteration is kept internally with...
Definition hosts.c:1310
void gvm_hosts_free(gvm_hosts_t *)
Frees memory occupied by an gvm_hosts_t structure.
Definition hosts.c:1358
char * gvm_host_reverse_lookup(gvm_host_t *)
Checks for a host object reverse dns lookup existence.
Definition hosts.c:1814
gchar * gvm_host_type_str(const gvm_host_t *)
Gets a host's type in printable format.
Definition hosts.c:2251
int gvm_host_get_addr6(const gvm_host_t *, struct in6_addr *)
Gives a host object's value as an IPv6 address. If the host type is hostname, it resolves the IPv4 ad...
Definition hosts.c:2345
int gvm_get_host_type(const gchar *)
Determines the host type in a buffer.
Definition hosts.c:810
int gvm_hosts_exclude_with_max(gvm_hosts_t *, const char *, unsigned int)
Excludes a set of hosts provided as a string from a hosts collection. Not to be used while iterating ...
Definition hosts.c:1563
gvm_hosts_t * gvm_hosts_new(const gchar *)
Creates a new gvm_hosts_t structure and the associated hosts objects from the provided hosts_str.
Definition hosts.c:1296
GSList * gvm_hosts_allowed_only(gvm_hosts_t *, const char *, const char *)
Returns a list of hosts after a host authorization check.
Definition hosts.c:1639
void gvm_host_free(gpointer)
Frees the memory occupied by an gvm_host_t object.
Definition hosts.c:941
unsigned int gvm_hosts_duplicated(const gvm_hosts_t *)
Gets the count of single values in hosts string that were duplicated and therefore removed from the l...
Definition hosts.c:2111
int gvm_hosts_reverse_lookup_unify(gvm_hosts_t *)
Removes hosts duplicates that reverse-lookup to the same value. Not to be used while iterating over t...
Definition hosts.c:2062
enum host_type gvm_host_type(const gvm_host_t *)
Gets a host object's type.
Definition hosts.c:2236
gpointer gvm_duplicate_vhost(gconstpointer, gpointer)
Creates a deep copy of a gvm_vhost_t object.
Definition hosts.c:906
gvm_vhost_t * gvm_vhost_new(char *, char *)
Creates a new gvm_vhost_t object.
Definition hosts.c:871
int gvm_host_resolve(const gvm_host_t *, void *, int)
Resolves a host object's name to an IPv4 or IPv6 address. Host object should be of type HOST_TYPE_NAM...
Definition hosts.c:2324
gvm_hosts_t * gvm_hosts_reverse_lookup_only_excluded(gvm_hosts_t *)
Removes hosts that don't reverse-lookup from the hosts collection. Not to be used while iterating ove...
Definition hosts.c:1941
gvm_host_t * gvm_host_from_str(const gchar *hosts_str)
Creates a new gvm_host_t from a host string.
Definition hosts.c:1765
The structure for a single host object.
Definition hosts.h:61
struct in6_addr addr6
Definition hosts.h:66
gchar * name
Definition hosts.h:64
GSList * vhosts
Definition hosts.h:69
struct in_addr addr
Definition hosts.h:65
enum host_type type
Definition hosts.h:68
The structure for Hosts collection.
Definition hosts.h:88
size_t max_size
Definition hosts.h:91
size_t removed
Definition hosts.h:94
gchar * orig_str
Definition hosts.h:89
size_t duplicated
Definition hosts.h:95
size_t current
Definition hosts.h:92
size_t count
Definition hosts.h:93
gvm_host_t ** hosts
Definition hosts.h:90
The structure for a single vhost object.
Definition hosts.h:76
char * value
Definition hosts.h:77
char * source
Definition hosts.h:78