Greenbone Vulnerability Manager  21.4.5
manage_configs.h
1 /* Copyright (C) 2019-2021 Greenbone Networks GmbH
2  *
3  * SPDX-License-Identifier: AGPL-3.0-or-later
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as
7  * published by the Free Software Foundation, either version 3 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef _GVMD_MANAGE_CONFIGS_H
20 #define _GVMD_MANAGE_CONFIGS_H
21 
22 #include "iterator.h"
23 #include "manage_get.h"
24 #include "manage_preferences.h"
25 
26 typedef resource_t config_t;
27 
29 get_nvt_preference_by_id (const char *,
30  const char *,
31  const char *,
32  const char *,
33  const char *);
34 
38 typedef struct
39 {
40  char *name;
41  char *type;
42  int include;
43  char *family_or_nvt;
45 
46 int
47 create_config (const char*, const char*, int, const char*, int, const array_t*,
48  const array_t*, const char*, const char*, config_t*, char**);
49 
50 int
51 create_config_from_scanner (const char*, const char *, const char *,
52  const char *, char **);
53 
54 int
55 copy_config (const char*, const char*, const char *, const char *, config_t*);
56 
57 int
58 delete_config (const char*, int);
59 
60 int
61 sync_config (const char *);
62 
63 gboolean
64 find_config_with_permission (const char*, config_t*, const char *);
65 
66 char *
67 config_uuid (config_t);
68 
69 int
70 config_type (config_t);
71 
72 char *
73 config_nvt_timeout (config_t, const char *);
74 
75 int
76 config_predefined_uuid (const gchar *);
77 
78 void
79 init_user_config_iterator (iterator_t*, config_t, int, int, const char*);
80 
81 int
83 
84 const char*
85 config_iterator_nvt_selector (iterator_t*);
86 
87 int
89 
90 int
92 
93 int
95 
96 int
98 
99 int
101 
102 int
104 
105 const char*
106 config_iterator_usage_type (iterator_t*);
107 
108 int
110 
111 char*
112 config_nvt_selector (config_t);
113 
114 int
115 config_in_use (config_t);
116 
117 int
118 config_writable (config_t);
119 
120 int
121 config_count (const get_data_t *);
122 
123 int
124 trash_config_in_use (config_t);
125 
126 int
127 trash_config_writable (config_t);
128 
129 int
130 trash_config_readable_uuid (const gchar *);
131 
132 int
133 config_families_growing (config_t);
134 
135 int
136 config_nvts_growing (config_t);
137 
138 int
139 manage_modify_config_start (const char *, config_t *);
140 
141 void
143 
144 void
146 
147 int
148 manage_set_config_preference (config_t, const char*, const char*, const char*);
149 
150 void
152 
153 const char*
154 config_preference_iterator_name (iterator_t *);
155 
156 const char*
157 config_preference_iterator_value (iterator_t *);
158 
159 const char*
160 config_preference_iterator_type (iterator_t *);
161 
162 const char*
163 config_preference_iterator_default (iterator_t *);
164 
165 const char*
166 config_preference_iterator_hr_name (iterator_t *);
167 
168 int
169 manage_set_config (config_t, const char*, const char *, const char *);
170 
171 int
172 manage_set_config_nvts (config_t, const char*, GPtrArray*);
173 
174 int
175 manage_set_config_families (config_t, GPtrArray*, GPtrArray*, GPtrArray*, int,
176  gchar **);
177 
178 void
180 
181 const char*
182 config_timeout_iterator_oid (iterator_t *);
183 
184 const char*
185 config_timeout_iterator_nvt_name (iterator_t *);
186 
187 const char*
188 config_timeout_iterator_value (iterator_t *);
189 
190 void
191 update_config_preference (const char *, const char *, const char *,
192  const char *, gboolean);
193 
194 gboolean
196 
197 void
199 
200 int
202 
203 gboolean
205 
206 #endif /* not _GVMD_MANAGE_CONFIGS_H */
init_config_timeout_iterator
void init_config_timeout_iterator(iterator_t *iterator, config_t config)
Initialise a config timeout iterator.
Definition: manage_sql_configs.c:4585
init_config_iterator
int init_config_iterator(iterator_t *iterator, const get_data_t *get)
Initialise a scan config iterator.
Definition: manage_sql_configs.c:3535
nvt_selector_t
An NVT selector.
Definition: manage_configs.h:39
copy_config
int copy_config(const char *name, const char *comment, const char *config_id, const char *usage_type, config_t *new_config)
Create a config from an existing config.
Definition: manage_sql_configs.c:3078
trash_config_in_use
int trash_config_in_use(config_t config)
Return whether a trashcan config is referenced by a task.
Definition: manage_sql_configs.c:3744
init_user_config_iterator
void init_user_config_iterator(iterator_t *iterator, config_t config, int trash, int ascending, const char *sort_field)
Initialise a config iterator, limited to user's configs.
Definition: manage_sql_configs.c:3488
trash_config_writable
int trash_config_writable(config_t config)
Return whether a trashcan config is writable.
Definition: manage_sql_configs.c:3760
config_nvt_selector
char * config_nvt_selector(config_t config)
Return the NVT selector associated with a config.
Definition: manage_sql_configs.c:3938
find_config_with_permission
gboolean find_config_with_permission(const char *uuid, config_t *config, const char *permission)
Find a config for a set of permissions, given a UUID.
Definition: manage_sql_configs.c:2085
manage_modify_config_start
int manage_modify_config_start(const char *config_id, config_t *config_out)
Starts the SQL transaction for modify_config and finds the config.
Definition: manage_sql_configs.c:878
manage_modify_config_cancel
void manage_modify_config_cancel()
Cancels a manage_config command and rolls back the changes.
Definition: manage_sql_configs.c:900
resource_t
long long int resource_t
A resource, like a task or target.
Definition: iterator.h:39
config_predefined_uuid
int config_predefined_uuid(const gchar *config_id)
Return whether a config is predefined.
Definition: manage_configs.c:55
create_config_from_scanner
int create_config_from_scanner(const char *scanner_id, const char *name, const char *comment, const char *usage_type, char **uuid)
Create a config from an OSP scanner.
Definition: manage_sql_configs.c:2771
config_nvt_timeout
char * config_nvt_timeout(config_t config, const char *oid)
Get the timeout value for an NVT in a config.
Definition: manage_sql_configs.c:2948
config_count
int config_count(const get_data_t *get)
Count the number of scan configs.
Definition: manage_sql_configs.c:3462
iterator
A generic SQL iterator structure.
Definition: iterator.h:50
config_iterator_type
int config_iterator_type(iterator_t *iterator)
Get the type from a config iterator.
Definition: manage_sql_configs.c:3640
manage_set_config_preference
int manage_set_config_preference(config_t config, const char *nvt, const char *name, const char *value_64)
Set a preference of a config.
Definition: manage_sql_configs.c:4079
nvt_selector_t::type
char * type
Name of NVT selector.
Definition: manage_configs.h:41
manage_set_config
int manage_set_config(config_t config, const char *name, const char *comment, const char *scanner_id)
Set the name, comment and scanner of a config.
Definition: manage_sql_configs.c:4146
init_config_preference_iterator
void init_config_preference_iterator(iterator_t *iterator, config_t config)
Initialise a preference iterator.
Definition: manage_sql_configs.c:3792
manage_modify_config_commit
void manage_modify_config_commit()
Commits the changes of a manage_config command.
Definition: manage_sql_configs.c:909
config_iterator_families_growing
int config_iterator_families_growing(iterator_t *iterator)
Get the families growing state from a config iterator.
Definition: manage_sql_configs.c:3608
config_type
int config_type(config_t config)
Return the type of a config.
Definition: manage_sql_configs.c:2870
get_data_t
Command data for a get command.
Definition: manage_get.h:35
manage_rebuild_configs
int manage_rebuild_configs()
Rebuild configs from the feed.
Definition: manage_configs.c:563
config_in_use
int config_in_use(config_t config)
Return whether a config is referenced by a task.
Definition: manage_sql_configs.c:3714
config_writable
int config_writable(config_t config)
Return whether a config can be modified.
Definition: manage_sql_configs.c:3731
update_config_preference
void update_config_preference(const char *config_id, const char *type, const char *preference_name, const char *new_value, gboolean insert)
Update or optionally insert a NVT preference.
Definition: manage_sql_configs.c:4642
manage_set_config_nvts
int manage_set_config_nvts(config_t config, const char *family, GPtrArray *selected_nvts)
Set the NVT's selected for a single family of a config.
Definition: manage_sql_configs.c:4250
iterator.h
Headers for Iterators.
config_uuid
char * config_uuid(config_t config)
Return the UUID of a config.
Definition: manage_sql_configs.c:2857
config_nvts_growing
int config_nvts_growing(config_t config)
Get the NVT growth status of a config.
Definition: manage_sql_configs.c:258
config_iterator_nvts_growing
int config_iterator_nvts_growing(iterator_t *iterator)
Get the NVTs growing state from a config iterator.
Definition: manage_sql_configs.c:3624
delete_config
int delete_config(const char *config_id, int ultimate)
Delete a config.
Definition: manage_sql_configs.c:3171
config_iterator_family_count
int config_iterator_family_count(iterator_t *iterator)
Get the family count from a config iterator.
Definition: manage_sql_configs.c:3576
config_iterator_predefined
int config_iterator_predefined(iterator_t *iterator)
Get predefined status from a config iterator.
Definition: manage_sql_configs.c:3698
config_families_growing
int config_families_growing(config_t config)
Get the family growth status of a config.
Definition: manage_sql_configs.c:273
config_iterator_nvt_count
int config_iterator_nvt_count(iterator_t *iterator)
Get the nvt count from a config iterator.
Definition: manage_sql_configs.c:3592
trash_config_readable_uuid
int trash_config_readable_uuid(const gchar *config_id)
Return whether a trashcan config is readable.
Definition: manage_sql_configs.c:3773
get_nvt_preference_by_id
preference_t * get_nvt_preference_by_id(const char *nvt_oid, const char *find_id, const char *check_name, const char *check_type, const char *value)
Gets an NVT preference by id or by name.
Definition: manage_sql_configs.c:2180
nvt_selector_t::include
int include
Whether family/NVT is included or excluded.
Definition: manage_configs.h:42
should_sync_configs
gboolean should_sync_configs()
Checks if the configs should be synced with the feed.
Definition: manage_configs.c:574
preference_t
An NVT preference.
Definition: manage_preferences.h:33
nvt_selector_t::name
char * name
Name of NVT selector.
Definition: manage_configs.h:40
configs_feed_dir_exists
gboolean configs_feed_dir_exists()
Tests if the configs feed directory exists.
Definition: manage_configs.c:542
manage_sync_configs
void manage_sync_configs()
Sync configs with the feed.
Definition: manage_configs.c:551
sync_config
int sync_config(const char *config_id)
Synchronize a config.
Definition: manage_sql_configs.c:3400
create_config
int create_config(const char *config_id, const char *proposed_name, int make_name_unique, const char *comment, int all_selector, const array_t *selectors, const array_t *preferences, const char *config_type, const char *usage_type, config_t *config, char **name)
Create a config.
Definition: manage_sql_configs.c:2612
nvt_selector_t::family_or_nvt
char * family_or_nvt
Family or NVT that this selector selects.
Definition: manage_configs.h:43
manage_set_config_families
int manage_set_config_families(config_t config, GPtrArray *growing_all_families, GPtrArray *static_all_families, GPtrArray *growing_families, int grow_families, gchar **rejected_family)
Refresh NVT selection of a config from given families.
Definition: manage_sql_configs.c:928
config_iterator_scanner_trash
int config_iterator_scanner_trash(iterator_t *iterator)
Get whether scanner is in trash from a config iterator.
Definition: manage_sql_configs.c:3672