Greenbone Vulnerability Manager  22.4.0~dev1
manage_configs.h
1 /* Copyright (C) 2019-2022 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*, config_t*, char**);
49 
50 int
51 copy_config (const char*, const char*, const char *, const char *, config_t*);
52 
53 int
54 delete_config (const char*, int);
55 
56 gboolean
57 find_config_with_permission (const char*, config_t*, const char *);
58 
59 char *
60 config_uuid (config_t);
61 
62 char *
63 config_nvt_timeout (config_t, const char *);
64 
65 int
66 config_predefined_uuid (const gchar *);
67 
68 void
69 init_user_config_iterator (iterator_t*, config_t, int, int, const char*);
70 
71 int
73 
74 const char*
75 config_iterator_nvt_selector (iterator_t*);
76 
77 int
79 
80 int
82 
83 int
85 
86 int
88 
89 const char*
90 config_iterator_usage_type (iterator_t*);
91 
92 int
94 
95 char*
96 config_nvt_selector (config_t);
97 
98 int
99 config_in_use (config_t);
100 
101 int
102 config_writable (config_t);
103 
104 int
105 config_count (const get_data_t *);
106 
107 int
108 trash_config_in_use (config_t);
109 
110 int
111 trash_config_writable (config_t);
112 
113 int
114 trash_config_readable_uuid (const gchar *);
115 
116 int
117 config_families_growing (config_t);
118 
119 int
120 config_nvts_growing (config_t);
121 
122 int
123 manage_modify_config_start (const char *, config_t *);
124 
125 void
127 
128 void
130 
131 int
132 manage_set_config_preference (config_t, const char*, const char*, const char*);
133 
134 void
136 
137 const char*
138 config_preference_iterator_name (iterator_t *);
139 
140 const char*
141 config_preference_iterator_value (iterator_t *);
142 
143 const char*
144 config_preference_iterator_type (iterator_t *);
145 
146 const char*
147 config_preference_iterator_default (iterator_t *);
148 
149 int
150 manage_set_config (config_t, const char*, const char *);
151 
152 int
153 manage_set_config_nvts (config_t, const char*, GPtrArray*);
154 
155 int
156 manage_set_config_families (config_t, GPtrArray*, GPtrArray*, GPtrArray*, int,
157  gchar **);
158 
159 void
161 
162 const char*
163 config_timeout_iterator_oid (iterator_t *);
164 
165 const char*
166 config_timeout_iterator_nvt_name (iterator_t *);
167 
168 const char*
169 config_timeout_iterator_value (iterator_t *);
170 
171 void
172 update_config_preference (const char *, const char *, const char *,
173  const char *, gboolean);
174 
175 gboolean
177 
178 void
180 
181 int
183 
184 gboolean
186 
187 #endif /* not _GVMD_MANAGE_CONFIGS_H */
Headers for Iterators.
long long int resource_t
A resource, like a task or target.
Definition: iterator.h:39
int config_predefined_uuid(const gchar *config_id)
Return whether a config is predefined.
Definition: manage_configs.c:55
gboolean should_sync_configs()
Checks if the configs should be synced with the feed.
Definition: manage_configs.c:572
void manage_sync_configs()
Sync configs with the feed.
Definition: manage_configs.c:549
gboolean configs_feed_dir_exists()
Tests if the configs feed directory exists.
Definition: manage_configs.c:540
int manage_rebuild_configs()
Rebuild configs from the feed.
Definition: manage_configs.c:561
char * config_uuid(config_t config)
Return the UUID of a config.
Definition: manage_sql_configs.c:2670
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
void manage_modify_config_commit()
Commits the changes of a manage_config command.
Definition: manage_sql_configs.c:909
int manage_set_config(config_t config, const char *name, const char *comment)
Set the name and comment of a config.
Definition: manage_sql_configs.c:3689
int config_in_use(config_t config)
Return whether a config is referenced by a task.
Definition: manage_sql_configs.c:3280
int trash_config_in_use(config_t config)
Return whether a trashcan config is referenced by a task.
Definition: manage_sql_configs.c:3310
int config_iterator_predefined(iterator_t *iterator)
Get predefined status from a config iterator.
Definition: manage_sql_configs.c:3264
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 *usage_type, config_t *config, char **name)
Create a config.
Definition: manage_sql_configs.c:2589
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:3776
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:4168
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:2176
int trash_config_writable(config_t config)
Return whether a trashcan config is writable.
Definition: manage_sql_configs.c:3326
int config_nvts_growing(config_t config)
Get the NVT growth status of a config.
Definition: manage_sql_configs.c:258
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:2714
int config_iterator_family_count(iterator_t *iterator)
Get the family count from a config iterator.
Definition: manage_sql_configs.c:3190
int config_writable(config_t config)
Return whether a config can be modified.
Definition: manage_sql_configs.c:3297
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:3624
int config_iterator_nvt_count(iterator_t *iterator)
Get the nvt count from a config iterator.
Definition: manage_sql_configs.c:3206
int trash_config_readable_uuid(const gchar *config_id)
Return whether a trashcan config is readable.
Definition: manage_sql_configs.c:3339
int config_iterator_families_growing(iterator_t *iterator)
Get the families growing state from a config iterator.
Definition: manage_sql_configs.c:3222
char * config_nvt_selector(config_t config)
Return the NVT selector associated with a config.
Definition: manage_sql_configs.c:3490
void init_config_preference_iterator(iterator_t *iterator, config_t config)
Initialise a preference iterator.
Definition: manage_sql_configs.c:3358
int config_iterator_nvts_growing(iterator_t *iterator)
Get the NVTs growing state from a config iterator.
Definition: manage_sql_configs.c:3238
void init_config_timeout_iterator(iterator_t *iterator, config_t config)
Initialise a config timeout iterator.
Definition: manage_sql_configs.c:4111
int config_families_growing(config_t config)
Get the family growth status of a config.
Definition: manage_sql_configs.c:273
int delete_config(const char *config_id, int ultimate)
Delete a config.
Definition: manage_sql_configs.c:2928
int init_config_iterator(iterator_t *iterator, const get_data_t *get)
Initialise a scan config iterator.
Definition: manage_sql_configs.c:3149
int config_count(const get_data_t *get)
Count the number of scan configs.
Definition: manage_sql_configs.c:3076
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:3102
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:2081
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
void manage_modify_config_cancel()
Cancels a manage_config command and rolls back the changes.
Definition: manage_sql_configs.c:900
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:2833
Command data for a get command.
Definition: manage_get.h:35
A generic SQL iterator structure.
Definition: iterator.h:50
An NVT selector.
Definition: manage_configs.h:39
char * name
Name of NVT selector.
Definition: manage_configs.h:40
char * type
Name of NVT selector.
Definition: manage_configs.h:41
int include
Whether family/NVT is included or excluded.
Definition: manage_configs.h:42
char * family_or_nvt
Family or NVT that this selector selects.
Definition: manage_configs.h:43
An NVT preference.
Definition: manage_preferences.h:33