This file is indexed.

/usr/include/openvas/base/openvas_hosts.h is in libopenvas-dev 9.0.1-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/* openvas-libraries/base
 * $Id$
 * Description: API (structs and protos) for Hosts objects
 *
 * Authors:
 * Hani Benhabiles <hani.benhabiles@greenbone.net>
 * Jan-Oliver Wagner <jan-oliver.wagner@greenbone.net>
 *
 * Copyright:
 * Copyright (C) 2013 Greenbone Networks GmbH
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 */

/**
 * @file openvas_hosts.h
 * @brief Protos and data structures for Hosts collections and single hosts
 * objects.
 *
 * This file contains the protos for \ref hosts.c
 */

#ifndef _OPENVAS_HOSTS_H
#define _OPENVAS_HOSTS_H

#include "openvas_networking.h"

#include <glib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <arpa/inet.h>
#include <netdb.h>

/* Static values */

enum host_type {
  HOST_TYPE_NAME = 0,       /* Hostname eg. foo */
  HOST_TYPE_IPV4,           /* eg. 192.168.1.1 */
  HOST_TYPE_CIDR_BLOCK,     /* eg. 192.168.15.0/24 */
  HOST_TYPE_RANGE_SHORT,    /* eg. 192.168.15.10-20 */
  HOST_TYPE_RANGE_LONG,     /* eg. 192.168.15.10-192.168.18.3 */
  HOST_TYPE_IPV6,           /* eg. ::1 */
  HOST_TYPE_CIDR6_BLOCK,    /* eg. ::ffee/120 */
  HOST_TYPE_RANGE6_LONG,    /* eg. ::1:200:7-::1:205:500 */
  HOST_TYPE_RANGE6_SHORT,   /* eg. ::1-fe10 */
  HOST_TYPE_MAX             /* Boundary checking. */
};

/* Typedefs */
typedef struct openvas_host openvas_host_t;
typedef struct openvas_hosts openvas_hosts_t;

/* Data structures. */

/**
 * @brief The structure for a single host object.
 *
 * The elements of this structure should never be accessed directly.
 * Only the functions corresponding to this module should be used.
 */
struct openvas_host
{
  union {
    gchar *name;            /* Hostname. */
    struct in_addr addr;    /* IPv4 address */
    struct in6_addr addr6;  /* IPv6 address */
  };
  enum host_type type;  /* HOST_TYPE_NAME, HOST_TYPE_IPV4 or HOST_TYPE_IPV6. */
};

/**
 * @brief The structure for Hosts collection.
 *
 * The elements of this structure should never be accessed directly.
 * Only the functions corresponding to this module should be used.
 */
struct openvas_hosts
{
  gchar *orig_str;          /* Original hosts definition string. */
  GList *hosts;             /* Hosts objects list. */
  GList *current;           /* Current host object in iteration. */
  unsigned int count;       /* Number of single host objects in hosts list. */
  unsigned int removed;     /* Number of duplicate/excluded values. */
};

/* Function prototypes. */

 /* openvas_hosts_t related */
openvas_hosts_t *
openvas_hosts_new (const gchar *);

openvas_hosts_t *
openvas_hosts_new_with_max (const gchar *, unsigned int);

openvas_host_t *
openvas_hosts_next (openvas_hosts_t *);

void
openvas_hosts_free (openvas_hosts_t *);

void
openvas_hosts_shuffle (openvas_hosts_t *);

void
openvas_hosts_reverse (openvas_hosts_t *);

void
openvas_hosts_resolve (openvas_hosts_t *);

int
openvas_hosts_exclude (openvas_hosts_t *, const gchar *, int);

char *
openvas_host_reverse_lookup (openvas_host_t *);

int
openvas_hosts_reverse_lookup_only (openvas_hosts_t *);

int
openvas_hosts_reverse_lookup_unify (openvas_hosts_t *);

unsigned int
openvas_hosts_count (const openvas_hosts_t *);

unsigned int
openvas_hosts_removed (const openvas_hosts_t *);

 /* openvas_host_t related */

int
openvas_host_in_hosts (const openvas_host_t *, const struct in6_addr *,
                       const openvas_hosts_t *);

gchar *
openvas_host_type_str (const openvas_host_t *);

enum host_type
openvas_host_type (const openvas_host_t *);

gchar *
openvas_host_value_str (const openvas_host_t *);

int
openvas_host_resolve (const openvas_host_t *, void *, int);

int
openvas_host_get_addr6 (const openvas_host_t *, struct in6_addr *);

/* Miscellaneous functions */

int
openvas_get_host_type (const gchar *);

#endif /* not _OPENVAS_HOSTS_H */