Greenbone Vulnerability Manager 22.4.1
manage.h
1/* Copyright (C) 2009-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/*
20 * @file manage.h
21 * @brief Headers for Greenbone Vulnerability Manager: the Manage library.
22 */
23
24#ifndef _GVMD_MANAGE_H
25#define _GVMD_MANAGE_H
26
27#include "iterator.h"
28#include "manage_configs.h"
29#include "manage_get.h"
30#include "utils.h"
31
32#include <stdio.h>
33#include <glib.h>
34#include <gnutls/gnutls.h>
35
36#include <gvm/base/array.h>
37#include <gvm/base/credentials.h>
38#include <gvm/base/nvti.h>
39#include <gvm/base/networking.h>
40#include <gvm/util/serverutils.h>
41#include <gvm/util/authutils.h>
42#include <gvm/osp/osp.h>
43
47typedef struct {
48 gchar *name;
49 gchar *host;
50 gchar *port;
51 gchar *user;
53
57#define OID_PING_HOST "1.3.6.1.4.1.25623.1.0.100315"
58
62#define OID_SSH_AUTH "1.3.6.1.4.1.25623.1.0.103591"
63
67#define OID_SMB_AUTH "1.3.6.1.4.1.25623.1.0.90023"
68
72#define OID_ESXI_AUTH "1.3.6.1.4.1.25623.1.0.105058"
73
77#define OID_SNMP_AUTH "1.3.6.1.4.1.25623.1.0.105076"
78
82#define OID_SERVICES "1.3.6.1.4.1.25623.1.0.10330"
83
87#define OID_LOGINS "1.3.6.1.4.1.25623.1.0.10870"
88
92#define OID_GLOBAL_SETTINGS "1.3.6.1.4.1.25623.1.0.12288"
93
97#define ALL_LOG_LEVELS (G_LOG_LEVEL_MASK \
98 | G_LOG_FLAG_FATAL \
99 | G_LOG_FLAG_RECURSION)
100
104#ifndef g_info
105#define g_info(...) g_log (G_LOG_DOMAIN, \
106 G_LOG_LEVEL_INFO, \
107 __VA_ARGS__)
108#endif /* g_info not defined */
109
113typedef struct
114{
115 gchar *name;
116 gchar *value;
118
122typedef int (*manage_connection_forker_t) (gvm_connection_t * conn,
123 const gchar* uuid);
124
125int
126init_manage (GSList*, const db_conn_info_t *, int, int, int, int,
127 manage_connection_forker_t, int);
128
129int
130init_manage_helper (GSList *, const db_conn_info_t *, int);
131
132void
133init_manage_process (const db_conn_info_t*);
134
135void
136cleanup_manage_process (gboolean);
137
138void
139manage_cleanup_process_error (int);
140
141void
142manage_reset_currents ();
143
144
145/* Commands. */
146
150typedef struct
151{
152 gchar *name;
153 gchar *summary;
154} command_t;
155
159extern command_t gmp_commands[];
160
161
162/* Certificate and key management. */
163
164gchar*
165truncate_certificate (const gchar*);
166
167gchar*
168truncate_private_key (const gchar*);
169
170int
171get_certificate_info (const gchar *,
172 gssize,
173 time_t *,
174 time_t *,
175 gchar **,
176 gchar **,
177 gchar **,
178 gchar **,
179 gchar **,
180 gnutls_x509_crt_fmt_t *);
181
182gchar *
183certificate_iso_time (time_t);
184
185const gchar *
186certificate_time_status (time_t, time_t);
187
188void
189parse_ssldetails (const char *, time_t *, time_t *, gchar **, gchar **);
190
191const char*
192tls_certificate_format_str (gnutls_x509_crt_fmt_t certificate_format);
193
194
195/* Credentials. */
196
197extern credentials_t current_credentials;
198
199int
200authenticate (credentials_t*);
201
202
203/* Database. */
204
205int
206manage_db_supported_version ();
207
208int
209manage_db_version ();
210
211int
212manage_scap_db_supported_version ();
213
214int
215manage_scap_db_version ();
216
217int
218manage_cert_db_supported_version ();
219
220int
221manage_cert_db_version ();
222
223void
224set_db_version (int version);
225
226int
227manage_migrate (GSList*, const db_conn_info_t*);
228
229int
230manage_encrypt_all_credentials (GSList *, const db_conn_info_t *);
231
232int
233manage_decrypt_all_credentials (GSList *, const db_conn_info_t *);
234
235void
236manage_session_set_timezone (const char *);
237
238void
239manage_transaction_start ();
240
241void
242manage_transaction_stop (gboolean);
243
244
245/* Task structures. */
246
253typedef enum
254{
255 TASK_STATUS_DELETE_REQUESTED = 0,
256 TASK_STATUS_DONE = 1,
257 TASK_STATUS_NEW = 2,
258 TASK_STATUS_REQUESTED = 3,
259 TASK_STATUS_RUNNING = 4,
260 TASK_STATUS_STOP_REQUESTED = 10,
261 TASK_STATUS_STOP_WAITING = 11,
262 TASK_STATUS_STOPPED = 12,
263 TASK_STATUS_INTERRUPTED = 13,
264 TASK_STATUS_DELETE_ULTIMATE_REQUESTED = 14,
265 /* 15 was removed (TASK_STATUS_STOP_REQUESTED_GIVEUP). */
266 TASK_STATUS_DELETE_WAITING = 16,
267 TASK_STATUS_DELETE_ULTIMATE_WAITING = 17,
268 TASK_STATUS_QUEUED = 18
269} task_status_t;
270
274#define AUTO_DELETE_KEEP_MIN 2
275
279#define AUTO_DELETE_KEEP_MAX 1200
280
281
288typedef enum
289{
290 ALIVE_TEST_TCP_ACK_SERVICE = 1,
291 ALIVE_TEST_ICMP = 2,
292 ALIVE_TEST_ARP = 4,
293 ALIVE_TEST_CONSIDER_ALIVE = 8,
294 ALIVE_TEST_TCP_SYN_SERVICE = 16
295} alive_test_t;
296
303typedef enum scanner_type
304{
305 SCANNER_TYPE_NONE = 0,
306 /* 1 was removed (SCANNER_TYPE_OSP). */
307 SCANNER_TYPE_OPENVAS = 2,
308 SCANNER_TYPE_CVE = 3,
309 /* 4 was removed (SCANNER_TYPE_GMP). */
310 SCANNER_TYPE_OSP_SENSOR = 5,
311 SCANNER_TYPE_MAX = 6,
312} scanner_type_t;
313
314int
315scanner_type_valid (scanner_type_t);
316
317typedef resource_t credential_t;
318typedef resource_t alert_t;
319typedef resource_t filter_t;
320typedef resource_t group_t;
321typedef resource_t host_t;
322typedef resource_t tag_t;
323typedef resource_t target_t;
324typedef resource_t task_t;
325typedef resource_t ticket_t;
326typedef resource_t tls_certificate_t;
327typedef resource_t result_t;
328typedef resource_t report_t;
329typedef resource_t report_host_t;
330typedef resource_t report_format_t;
331typedef resource_t report_format_param_t;
332typedef resource_t role_t;
333typedef resource_t note_t;
334typedef resource_t nvt_t;
335typedef resource_t override_t;
336typedef resource_t permission_t;
337typedef resource_t port_list_t;
338typedef resource_t port_range_t;
339typedef resource_t schedule_t;
340typedef resource_t scanner_t;
341typedef resource_t setting_t;
342typedef resource_t user_t;
343
344
345/* GMP GET support.
346 *
347 * The standalone parts of the GET support are in manage_get.h. */
348
350get_iterator_resource (iterator_t*);
351
352user_t
353get_iterator_owner (iterator_t*);
354
355
356/* Resources. */
357
358int
359manage_resource_name (const char *, const char *, char **);
360
361int
362manage_trash_resource_name (const char *, const char *, char **);
363
364int
365resource_count (const char *, const get_data_t *);
366
367int
368resource_id_exists (const char *, const char *);
369
370int
371trash_id_exists (const char *, const char *);
372
373gboolean
374find_resource (const char*, const char*, resource_t*);
375
376const char *
377type_name_plural (const char*);
378
379const char *
380type_name (const char*);
381
382int
383type_is_scap (const char*);
384
385int
386delete_resource (const char *, const char *, int);
387
388
389/* Events and Alerts. */
390
394typedef struct {
400
401void
403
404void
406
410#define ALERT_MESSAGE_INCLUDE \
411 "Task '$n': $e\n" \
412 "\n" \
413 "After the event $e,\n" \
414 "the following condition was met: $c\n" \
415 "\n" \
416 "This email escalation is configured to apply report format '$r'.\n" \
417 "Full details and other report formats are available on the scan engine.\n" \
418 "\n" \
419 "$t" \
420 "\n" \
421 "$i" \
422 "\n" \
423 "\n" \
424 "Note:\n" \
425 "This email was sent to you as a configured security scan escalation.\n" \
426 "Please contact your local system administrator if you think you\n" \
427 "should not have received it.\n"
428
432#define SECINFO_ALERT_MESSAGE_INCLUDE \
433 "Task '$n': $e\n" \
434 "\n" \
435 "After the event $e,\n" \
436 "the following condition was met: $c\n" \
437 "\n" \
438 "This email escalation is configured to apply report format '$r'.\n" \
439 "Full details and other report formats are available on the scan engine.\n" \
440 "\n" \
441 "$t" \
442 "\n" \
443 "$i" \
444 "\n" \
445 "\n" \
446 "Note:\n" \
447 "This email was sent to you as a configured security scan escalation.\n" \
448 "Please contact your local system administrator if you think you\n" \
449 "should not have received it.\n"
450
454#define ALERT_MESSAGE_ATTACH \
455 "Task '$n': $e\n" \
456 "\n" \
457 "After the event $e,\n" \
458 "the following condition was met: $c\n" \
459 "\n" \
460 "This email escalation is configured to attach report format '$r'.\n" \
461 "Full details and other report formats are available on the scan engine.\n" \
462 "\n" \
463 "$t" \
464 "\n" \
465 "Note:\n" \
466 "This email was sent to you as a configured security scan escalation.\n" \
467 "Please contact your local system administrator if you think you\n" \
468 "should not have received it.\n"
469
473#define SECINFO_ALERT_MESSAGE_ATTACH \
474 "Task '$n': $e\n" \
475 "\n" \
476 "After the event $e,\n" \
477 "the following condition was met: $c\n" \
478 "\n" \
479 "This email escalation is configured to attach report format '$r'.\n" \
480 "Full details and other report formats are available on the scan engine.\n" \
481 "\n" \
482 "$t" \
483 "\n" \
484 "Note:\n" \
485 "This email was sent to you as a configured security scan escalation.\n" \
486 "Please contact your local system administrator if you think you\n" \
487 "should not have received it.\n"
488
492#define ALERT_VFIRE_CALL_DESCRIPTION \
493 "GVM Task '$n': $e\n" \
494 "\n" \
495 "After the event $e,\n" \
496 "the following condition was met: $c\n" \
497 "\n" \
498 "This ticket includes reports in the following format(s):\n" \
499 "$r.\n" \
500 "Full details and other report formats are available on the scan engine.\n" \
501 "\n" \
502 "$t" \
503 "\n" \
504 "Note:\n" \
505 "This ticket was created automatically as a security scan escalation.\n" \
506 "Please contact your local system administrator if you think it\n" \
507 "was created or assigned erroneously.\n"
508
512typedef enum
513{
514 EVENT_ERROR,
515 EVENT_TASK_RUN_STATUS_CHANGED,
516 EVENT_NEW_SECINFO,
517 EVENT_UPDATED_SECINFO,
518 EVENT_TICKET_RECEIVED,
519 EVENT_ASSIGNED_TICKET_CHANGED,
520 EVENT_OWNED_TICKET_CHANGED
521} event_t;
522
526typedef enum
527{
528 ALERT_METHOD_ERROR,
529 ALERT_METHOD_EMAIL,
530 ALERT_METHOD_HTTP_GET,
531 ALERT_METHOD_SOURCEFIRE,
532 ALERT_METHOD_START_TASK,
533 ALERT_METHOD_SYSLOG,
534 ALERT_METHOD_VERINICE,
535 ALERT_METHOD_SEND,
536 ALERT_METHOD_SCP,
537 ALERT_METHOD_SNMP,
538 ALERT_METHOD_SMB,
539 ALERT_METHOD_TIPPINGPOINT,
540 ALERT_METHOD_VFIRE,
541} alert_method_t;
542
546typedef enum
547{
548 ALERT_CONDITION_ERROR,
549 ALERT_CONDITION_ALWAYS,
550 ALERT_CONDITION_SEVERITY_AT_LEAST,
551 ALERT_CONDITION_SEVERITY_CHANGED,
552 ALERT_CONDITION_FILTER_COUNT_AT_LEAST,
553 ALERT_CONDITION_FILTER_COUNT_CHANGED
554} alert_condition_t;
555
556int
557manage_check_alerts (GSList *, const db_conn_info_t *);
558
559int
560create_alert (const char*, const char*, const char*, const char*, event_t,
561 GPtrArray*, alert_condition_t, GPtrArray*, alert_method_t,
562 GPtrArray*, alert_t*);
563
564int
565copy_alert (const char*, const char*, const char*, alert_t*);
566
567int
568modify_alert (const char*, const char*, const char*, const char*,
569 const char*, event_t, GPtrArray*, alert_condition_t, GPtrArray*,
570 alert_method_t, GPtrArray*);
571
572int
573delete_alert (const char *, int);
574
575char *
576alert_uuid (alert_t);
577
578gboolean
579find_alert_with_permission (const char *, alert_t *, const char *);
580
581int
582manage_alert (const char *, const char *, event_t, const void*, gchar **);
583
584int
585manage_test_alert (const char *, gchar **);
586
587int
588alert_in_use (alert_t);
589
590int
591trash_alert_in_use (alert_t);
592
593int
594alert_writable (alert_t);
595
596int
597trash_alert_writable (alert_t);
598
599int
600alert_count (const get_data_t *);
601
602int
603init_alert_iterator (iterator_t*, const get_data_t*);
604
605int
606alert_iterator_event (iterator_t*);
607
608int
609alert_iterator_condition (iterator_t*);
610
611int
612alert_iterator_method (iterator_t*);
613
614char *
615alert_iterator_filter_uuid (iterator_t*);
616
617char *
618alert_iterator_filter_name (iterator_t*);
619
620int
621alert_iterator_filter_trash (iterator_t*);
622
623int
624alert_iterator_filter_readable (iterator_t*);
625
626int
627alert_iterator_active (iterator_t*);
628
629const char*
630alert_condition_name (alert_condition_t);
631
632gchar*
633alert_condition_description (alert_condition_t, alert_t);
634
635const char*
636event_name (event_t);
637
638gchar*
639event_description (event_t, const void *, const char *);
640
641const char*
642alert_method_name (alert_method_t);
643
644alert_condition_t
645alert_condition_from_name (const char*);
646
647event_t
648event_from_name (const char*);
649
650alert_method_t
651alert_method_from_name (const char*);
652
653void
654init_alert_data_iterator (iterator_t *, alert_t, int, const char *);
655
656const char*
657alert_data_iterator_name (iterator_t*);
658
659const char*
660alert_data_iterator_data (iterator_t*);
661
662void
663init_alert_task_iterator (iterator_t*, alert_t, int);
664
665const char*
666alert_task_iterator_name (iterator_t*);
667
668const char*
669alert_task_iterator_uuid (iterator_t*);
670
671int
672alert_task_iterator_readable (iterator_t*);
673
674void
675init_task_alert_iterator (iterator_t*, task_t);
676
677const char*
678task_alert_iterator_uuid (iterator_t*);
679
680const char*
681task_alert_iterator_name (iterator_t*);
682
683
684/* Task global variables and preprocessor variables. */
685
689extern task_t current_scanner_task;
690
691extern report_t global_current_report;
692
693
694/* Task code specific to the representation of tasks. */
695
696unsigned int
697task_count (const get_data_t *);
698
699int
700init_task_iterator (iterator_t*, const get_data_t *);
701
702task_status_t
703task_iterator_run_status (iterator_t*);
704
705const char *
706task_iterator_run_status_name (iterator_t*);
707
708int
709task_iterator_total_reports (iterator_t*);
710
711int
712task_iterator_finished_reports (iterator_t *);
713
714const char *
715task_iterator_first_report (iterator_t*);
716
717const char *
718task_iterator_last_report (iterator_t *);
719
720report_t
721task_iterator_current_report (iterator_t *);
722
723const char *
724task_iterator_hosts_ordering (iterator_t *);
725
726scanner_t
727task_iterator_scanner (iterator_t *);
728
729const char *
730task_iterator_usage_type (iterator_t *);
731
732int
733task_uuid (task_t, char **);
734
735int
736task_in_trash (task_t);
737
738int
739task_in_trash_id (const gchar *);
740
741int
742task_in_use (task_t);
743
744int
745trash_task_in_use (task_t);
746
747int
748task_writable (task_t);
749
750int
751task_alterable (task_t);
752
753int
754trash_task_writable (task_t);
755
756int
757task_average_scan_duration (task_t);
758
759char*
760task_owner_name (task_t);
761
762char*
763task_name (task_t);
764
765char*
766task_comment (task_t);
767
768char*
769task_hosts_ordering (task_t);
770
771scanner_t
772task_scanner (task_t);
773
774int
775task_scanner_in_trash (task_t);
776
777config_t
778task_config (task_t);
779
780char*
781task_config_uuid (task_t);
782
783char*
784task_config_name (task_t);
785
786int
787task_config_in_trash (task_t);
788
789void
790set_task_config (task_t, config_t);
791
792target_t
793task_target (task_t);
794
795int
796task_target_in_trash (task_t);
797
798void
799set_task_target (task_t, target_t);
800
801void
802set_task_hosts_ordering (task_t, const char *);
803
804void
805set_task_scanner (task_t, scanner_t);
806
807void
808set_task_usage_type (task_t, const char *);
809
810char*
811task_description (task_t);
812
813void
814set_task_description (task_t, char*, gsize);
815
816task_status_t
817task_run_status (task_t);
818
819void
820set_task_run_status (task_t, task_status_t);
821
822int
823task_result_count (task_t, int);
824
825report_t
826task_running_report (task_t);
827
828int
829task_upload_progress (task_t);
830
831void
832set_task_start_time_epoch (task_t, int);
833
834void
835set_task_start_time_ctime (task_t, char*);
836
837void
838set_task_end_time (task_t task, char* time);
839
840void
841set_task_end_time_epoch (task_t, time_t);
842
843void
844add_task_alert (task_t, alert_t);
845
846void
847set_task_alterable (task_t, int);
848
849int
850set_task_groups (task_t, array_t*, gchar**);
851
852int
853set_task_schedule (task_t, schedule_t, int);
854
855int
856set_task_schedule_periods (const gchar *, int);
857
858int
859set_task_schedule_periods_id (task_t, int);
860
861unsigned int
862task_report_count (task_t);
863
864int
865task_last_report (task_t, report_t*);
866
867const char *
868task_iterator_trend_counts (iterator_t *, int, int, int, double, int, int, int,
869 double);
870
871int
872task_schedule_periods (task_t);
873
874int
875task_schedule_periods_uuid (const gchar *);
876
877schedule_t
878task_schedule (task_t);
879
880schedule_t
881task_schedule_uuid (const gchar *);
882
883int
884task_schedule_in_trash (task_t);
885
886time_t
887task_schedule_next_time_uuid (const gchar *);
888
889int
890task_schedule_next_time (task_t);
891
892int
893task_debugs_size (task_t);
894
895int
896task_holes_size (task_t);
897
898int
899task_infos_size (task_t);
900
901int
902task_logs_size (task_t);
903
904int
905task_warnings_size (task_t);
906
907int
908task_false_positive_size (task_t);
909
910task_t
911make_task (char*, char*, int, int);
912
913void
914make_task_complete (task_t);
915
916int
917copy_task (const char*, const char*, const char *, int, task_t*);
918
919void
920set_task_name (task_t, const char *);
921
922gboolean
923find_task_with_permission (const char*, task_t*, const char *);
924
925gboolean
926find_trash_task_with_permission (const char*, task_t*, const char *);
927
928void
929reset_task (task_t);
930
931int
932set_task_parameter (task_t, const char*, char*);
933
934char*
935task_observers (task_t);
936
937int
938set_task_observers (task_t, const gchar *);
939
940int
941request_delete_task_uuid (const char *, int);
942
943int
944request_delete_task (task_t*);
945
946int
947delete_task (task_t, int);
948
949void
950append_to_task_comment (task_t, const char*, int);
951
952void
953add_task_description_line (task_t, const char*, size_t);
954
955void
956set_scan_ports (report_t, const char*, unsigned int, unsigned int);
957
958void
959append_task_open_port (task_t task, const char *, const char*);
960
961int
962manage_task_update_file (const gchar *, const char *, const void *);
963
964int
965manage_task_remove_file (const gchar *, const char *);
966
967int
968modify_task (const gchar *, const gchar *, const gchar *, const gchar *,
969 const gchar *, const gchar *, const gchar *, array_t *,
970 const gchar *, array_t *, const gchar *, const gchar *,
971 array_t *, const gchar *, gchar **, gchar **);
972
973void
974init_config_file_iterator (iterator_t*, const char*, const char*);
975
976const char*
977config_file_iterator_content (iterator_t*);
978
979int
980config_file_iterator_length (iterator_t*);
981
982void
983init_config_task_iterator (iterator_t*, config_t, int);
984
985const char*
986config_task_iterator_name (iterator_t*);
987
988const char*
989config_task_iterator_uuid (iterator_t*);
990
991int
992config_task_iterator_readable (iterator_t*);
993
994
995/* General severity related facilities. */
996
997int
998severity_in_level (double, const char *);
999
1000const char*
1001severity_to_level (double, int);
1002
1003const char*
1004severity_to_type (double);
1005
1009typedef struct
1010{
1011 int* counts;
1012 int total;
1013 double max;
1015
1016double
1018
1019void
1021
1022void
1024
1025void
1027
1028void
1030
1031void
1033 int*, int*, int*, int*, int*, int*);
1034
1035
1036/* General task facilities. */
1037
1038const char*
1039run_status_name (task_status_t);
1040
1041int
1042start_task (const char *, char**);
1043
1044int
1045stop_task (const char *);
1046
1047int
1048resume_task (const char *, char **);
1049
1050int
1051move_task (const char*, const char*);
1052
1053
1054/* Access control. */
1055
1056int
1057user_may (const char *);
1058
1059extern int
1060user_can_everything (const char *);
1061
1062extern int
1063user_can_super_everyone (const char *);
1064
1065extern int
1066user_has_super (const char *, user_t);
1067
1068
1069/* Results. */
1070
1074#define LSC_FAMILY_LIST \
1075 "'AIX Local Security Checks'," \
1076 " 'Amazon Linux Local Security Checks'," \
1077 " 'CentOS Local Security Checks'," \
1078 " 'Citrix Xenserver Local Security Checks'," \
1079 " 'Debian Local Security Checks'," \
1080 " 'F5 Local Security Checks'," \
1081 " 'Fedora Local Security Checks'," \
1082 " 'FortiOS Local Security Checks'," \
1083 " 'FreeBSD Local Security Checks'," \
1084 " 'Gentoo Local Security Checks'," \
1085 " 'HP-UX Local Security Checks'," \
1086 " 'Huawei EulerOS Local Security Checks'," \
1087 " 'JunOS Local Security Checks'," \
1088 " 'Mac OS X Local Security Checks'," \
1089 " 'Mageia Linux Local Security Checks'," \
1090 " 'Mandrake Local Security Checks'," \
1091 " 'Oracle Linux Local Security Checks'," \
1092 " 'Palo Alto PAN-OS Local Security Checks'," \
1093 " 'Red Hat Local Security Checks'," \
1094 " 'Slackware Local Security Checks'," \
1095 " 'Solaris Local Security Checks'," \
1096 " 'SuSE Local Security Checks'," \
1097 " 'VMware Local Security Checks'," \
1098 " 'Ubuntu Local Security Checks'," \
1099 " 'Windows : Microsoft Bulletins'"
1100
1104#define FAMILIES_WHOLE_ONLY \
1105 { "CentOS Local Security Checks", \
1106 "Debian Local Security Checks", \
1107 "Fedora Local Security Checks", \
1108 "Huawei EulerOS Local Security Checks", \
1109 "Oracle Linux Local Security Checks", \
1110 "Red Hat Local Security Checks", \
1111 "SuSE Local Security Checks", \
1112 "Ubuntu Local Security Checks", \
1113 NULL }
1114
1115gboolean
1116find_result_with_permission (const char*, result_t*, const char *);
1117
1118int
1119result_uuid (result_t, char **);
1120
1121int
1122result_detection_reference (result_t, report_t, const char *, const char *,
1123 const char *, char **, char **, char **, char **,
1124 char **);
1125
1126/* Reports. */
1127
1129#define OVAS_MANAGE_REPORT_ID_LENGTH UUID_LEN_STR
1130
1134#define APPLY_OVERRIDES_DEFAULT 0
1135
1139#define QOD_DEFAULT 75
1140
1144#define MIN_QOD_DEFAULT 70
1145
1146void
1147reports_clear_count_cache_for_override (override_t, int);
1148
1149void
1150init_report_counts_build_iterator (iterator_t *, report_t, int, int,
1151 const char*);
1152
1153double
1154report_severity (report_t, int, int);
1155
1156int
1157report_host_count (report_t);
1158
1159int
1160report_result_host_count (report_t, int);
1161
1162char *
1163report_finished_hosts_str (report_t);
1164
1165gboolean
1166find_report_with_permission (const char *, report_t *, const char *);
1167
1168report_t
1169make_report (task_t, const char *, task_status_t);
1170
1171int
1172qod_from_type (const char *);
1173
1174result_t
1175make_result (task_t, const char*, const char*, const char*, const char*,
1176 const char*, const char*, const char*);
1177
1178result_t
1179make_osp_result (task_t, const char*, const char*, const char*, const char*,
1180 const char *, const char *, const char *, int, const char*);
1181
1182result_t
1183make_cve_result (task_t, const char*, const char*, double, const char*);
1184
1188typedef struct
1189{
1191 char *host;
1192 char *hostname;
1193 char *nvt_oid;
1195 char *port;
1196 char *qod;
1197 char *qod_type;
1198 char *severity;
1199 char *threat;
1201
1205typedef struct
1206{
1207 char *ip;
1208 char *name;
1212 char *value;
1214
1215
1219typedef struct
1220{
1221 char *product;
1224 char *location;
1226
1227void
1228host_detail_free (host_detail_t *);
1229
1230void
1231insert_report_host_detail (report_t, const char *, const char *, const char *,
1232 const char *, const char *, const char *);
1233
1234int
1235manage_report_host_detail (report_t, const char *, const char *);
1236
1237void
1238hosts_set_identifiers (report_t);
1239
1240void
1241hosts_set_max_severity (report_t, int*, int*);
1242
1243void
1244hosts_set_details (report_t report);
1245
1246void
1247clear_duration_schedules (task_t);
1248
1249void
1250update_duration_schedule_periods (task_t);
1251
1252int
1253create_report (array_t*, const char *, const char *, const char *, const char *,
1254 array_t*, array_t*, array_t*, char **);
1255
1256void
1257report_add_result (report_t, result_t);
1258
1259void
1260report_add_results_array (report_t, GArray *);
1261
1262char*
1263report_uuid (report_t);
1264
1265int
1266task_last_resumable_report (task_t, report_t *);
1267
1268gchar*
1269task_second_last_report_id (task_t);
1270
1271gchar*
1272report_path_task_uuid (gchar*);
1273
1274gboolean
1275report_task (report_t, task_t*);
1276
1277void
1278report_compliance_by_uuid (const char *, int *, int *, int *);
1279
1280int
1281report_scan_result_count (report_t, const char*, const char*, int, const char*,
1282 const char*, int, int, int*);
1283
1284int
1285report_counts (const char*, int*, int*, int*, int*, int*, double*,
1286 int, int);
1287
1288int
1289report_counts_id (report_t, int*, int*, int*, int*, int*, double*,
1290 const get_data_t*, const char*);
1291
1292int
1293report_counts_id_no_filt (report_t, int*, int*, int*, int*, int*, int*,
1294 double*, const get_data_t*, const char*);
1295
1297report_results_get_data (int, int, int, int);
1298
1299int
1300scan_start_time_epoch (report_t);
1301
1302char*
1303scan_start_time_uuid (const char *);
1304
1305char*
1306scan_end_time_uuid (const char *);
1307
1308void
1309set_scan_start_time_ctime (report_t, const char*);
1310
1311void
1312set_scan_start_time_epoch (report_t, time_t);
1313
1314void
1315set_scan_end_time (report_t, const char*);
1316
1317void
1318set_scan_end_time_ctime (report_t, const char*);
1319
1320void
1321set_scan_end_time_epoch (report_t, time_t);
1322
1323void
1324set_scan_host_start_time_ctime (report_t, const char*, const char*);
1325
1326int
1327scan_host_end_time (report_t, const char*);
1328
1329void
1330set_scan_host_end_time (report_t, const char*, const char*);
1331
1332void
1333set_scan_host_end_time_ctime (report_t, const char*, const char*);
1334
1335int
1336report_timestamp (const char*, gchar**);
1337
1338int
1339delete_report (const char *, int);
1340
1341int
1342report_count (const get_data_t *);
1343
1344int
1345init_report_iterator (iterator_t*, const get_data_t *);
1346
1347void
1348init_report_iterator_task (iterator_t*, task_t);
1349
1350void
1351init_report_errors_iterator (iterator_t*, report_t);
1352
1353const char*
1354report_iterator_uuid (iterator_t*);
1355
1356int
1357result_count (const get_data_t *, report_t, const char*);
1358
1359int
1360init_result_get_iterator (iterator_t*, const get_data_t *, report_t,
1361 const char*, const gchar *);
1362
1363gboolean
1364next_report (iterator_t*, report_t*);
1365
1366result_t
1367result_iterator_result (iterator_t*);
1368
1369const char*
1370result_iterator_host (iterator_t*);
1371
1372const char*
1373result_iterator_port (iterator_t*);
1374
1375const char*
1376result_iterator_nvt_oid (iterator_t*);
1377
1378const char*
1379result_iterator_nvt_name (iterator_t *);
1380
1381const char*
1382result_iterator_nvt_summary (iterator_t *);
1383
1384const char*
1385result_iterator_nvt_insight (iterator_t *);
1386
1387const char*
1388result_iterator_nvt_affected (iterator_t *);
1389
1390const char*
1391result_iterator_nvt_impact (iterator_t *);
1392
1393const char*
1394result_iterator_nvt_solution (iterator_t *);
1395
1396const char*
1397result_iterator_nvt_solution_type (iterator_t *);
1398
1399const char*
1400result_iterator_nvt_solution_method (iterator_t *);
1401
1402const char*
1403result_iterator_nvt_detection (iterator_t *);
1404
1405const char*
1406result_iterator_nvt_family (iterator_t *);
1407
1408const char*
1409result_iterator_nvt_cvss_base (iterator_t *);
1410
1411const char*
1412result_iterator_nvt_tag (iterator_t *);
1413
1414const char*
1415result_iterator_descr (iterator_t*);
1416
1417task_t
1418result_iterator_task (iterator_t*);
1419
1420report_t
1421result_iterator_report (iterator_t*);
1422
1423const char*
1424result_iterator_scan_nvt_version (iterator_t*);
1425
1426const char*
1427result_iterator_original_severity (iterator_t*);
1428
1429const char*
1430result_iterator_severity (iterator_t *);
1431
1432double
1433result_iterator_severity_double (iterator_t *);
1434
1435const char*
1436result_iterator_original_level (iterator_t*);
1437
1438const char*
1439result_iterator_level (iterator_t*);
1440
1441const char*
1442result_iterator_solution_type (iterator_t*);
1443
1444const char*
1445result_iterator_qod (iterator_t*);
1446
1447const char*
1448result_iterator_qod_type (iterator_t*);
1449
1450const char*
1451result_iterator_hostname (iterator_t*);
1452
1453const char*
1454result_iterator_date (iterator_t*);
1455
1456const char*
1457result_iterator_path (iterator_t*);
1458
1459const char*
1460result_iterator_asset_host_id (iterator_t*);
1461
1462int
1463result_iterator_may_have_notes (iterator_t*);
1464
1465int
1466result_iterator_may_have_overrides (iterator_t*);
1467
1468int
1469result_iterator_may_have_tickets (iterator_t*);
1470
1471gchar **
1472result_iterator_cert_bunds (iterator_t*);
1473
1474gchar **
1475result_iterator_dfn_certs (iterator_t*);
1476
1477int
1478cleanup_result_nvts ();
1479
1480void
1481init_report_host_iterator (iterator_t*, report_t, const char *, report_host_t);
1482
1483const char*
1484host_iterator_host (iterator_t*);
1485
1486const char*
1487host_iterator_start_time (iterator_t*);
1488
1489const char*
1490host_iterator_end_time (iterator_t*);
1491
1492int
1493host_iterator_current_port (iterator_t*);
1494
1495int
1496host_iterator_max_port (iterator_t*);
1497
1498int
1499collate_message_type (void* data, int, const void*, int, const void*);
1500
1501void
1502trim_partial_report (report_t);
1503
1504int
1505report_progress (report_t);
1506
1507gchar *
1508manage_report (report_t, report_t, const get_data_t *, report_format_t,
1509 int, int, gsize *, gchar **, gchar **, gchar **, gchar **,
1510 gchar **);
1511
1512int
1513manage_send_report (report_t, report_t, report_format_t, const get_data_t *,
1514 int, int, int, int, int, int,
1515 gboolean (*) (const char *,
1516 int (*) (const char*, void*),
1517 void*),
1518 int (*) (const char *, void*), void *, const char *,
1519 const gchar *);
1520
1521
1522
1523/* Reports. */
1524
1525void
1526init_app_locations_iterator (iterator_t*, report_host_t, const gchar *);
1527
1528const char *
1529app_locations_iterator_location (iterator_t *);
1530
1531void
1532init_host_prognosis_iterator (iterator_t*, report_host_t);
1533
1534double
1535prognosis_iterator_cvss_double (iterator_t*);
1536
1537const char*
1538prognosis_iterator_cpe (iterator_t*);
1539
1540const char*
1541prognosis_iterator_cve (iterator_t*);
1542
1543const char*
1544prognosis_iterator_description (iterator_t*);
1545
1546
1547/* Targets. */
1548
1554#define MANAGE_ABSOLUTE_MAX_IPS_PER_TARGET 70000
1555
1559#define MANAGE_MAX_HOSTS 4095
1560
1564#define MANAGE_USER_MAX_HOSTS 16777216
1565
1566int
1567manage_max_hosts ();
1568
1569void
1570manage_filter_controls (const gchar *, int *, int *, gchar **, int *);
1571
1572void
1573manage_report_filter_controls (const gchar *, int *, int *, gchar **, int *,
1574 int *, gchar **, gchar **, gchar **, gchar **,
1575 int *, int *, int *, int *, gchar **);
1576
1577gchar *
1578manage_clean_filter (const gchar *);
1579
1580gchar *
1581manage_clean_filter_remove (const gchar *, const gchar *);
1582
1583int
1584manage_count_hosts (const char *, const char *);
1585
1586gboolean
1587find_target_with_permission (const char *, target_t *, const char *);
1588
1589int
1590create_target (const char*, const char*, const char*, const char*, const char*,
1591 const char *, const char*, credential_t, credential_t,
1592 const char *, credential_t, credential_t, credential_t,
1593 const char *, const char *, const char *, const char *,
1594 target_t*);
1595
1596int
1597copy_target (const char*, const char*, const char *, target_t*);
1598
1599int
1600modify_target (const char*, const char*, const char*, const char*, const char*,
1601 const char*, const char*, const char*, const char*, const char*,
1602 const char*, const char*, const char*, const char*, const char*,
1603 const char*);
1604
1605int
1606delete_target (const char*, int);
1607
1608int
1609target_count (const get_data_t *);
1610
1611void
1612init_user_target_iterator (iterator_t*, target_t);
1613
1614void
1615init_target_iterator_one (iterator_t*, target_t);
1616
1617int
1618init_target_iterator (iterator_t*, const get_data_t *);
1619
1620const char*
1621target_iterator_hosts (iterator_t*);
1622
1623const char*
1624target_iterator_exclude_hosts (iterator_t*);
1625
1626const char*
1627target_iterator_reverse_lookup_only (iterator_t*);
1628
1629const char*
1630target_iterator_reverse_lookup_unify (iterator_t*);
1631
1632const char*
1633target_iterator_comment (iterator_t*);
1634
1635int
1636target_iterator_ssh_credential (iterator_t*);
1637
1638const char*
1639target_iterator_ssh_port (iterator_t*);
1640
1641int
1642target_iterator_smb_credential (iterator_t*);
1643
1644int
1645target_iterator_esxi_credential (iterator_t*);
1646
1647int
1648target_iterator_snmp_credential (iterator_t*);
1649
1650int
1651target_iterator_ssh_elevate_credential (iterator_t*);
1652
1653int
1654target_iterator_ssh_trash (iterator_t*);
1655
1656int
1657target_iterator_smb_trash (iterator_t*);
1658
1659int
1660target_iterator_esxi_trash (iterator_t*);
1661
1662int
1663target_iterator_snmp_trash (iterator_t*);
1664
1665int
1666target_iterator_ssh_elevate_trash (iterator_t*);
1667
1668const char*
1669target_iterator_allow_simultaneous_ips (iterator_t*);
1670
1671const char*
1672target_iterator_port_list_uuid (iterator_t*);
1673
1674const char*
1675target_iterator_port_list_name (iterator_t*);
1676
1677int
1678target_iterator_port_list_trash (iterator_t*);
1679
1680const char*
1681target_iterator_alive_tests (iterator_t*);
1682
1683char*
1684target_uuid (target_t);
1685
1686char*
1687trash_target_uuid (target_t);
1688
1689char*
1690target_name (target_t);
1691
1692char*
1693trash_target_name (target_t);
1694
1695int
1696trash_target_readable (target_t);
1697
1698char*
1699target_hosts (target_t);
1700
1701char*
1702target_exclude_hosts (target_t);
1703
1704char*
1705target_reverse_lookup_only (target_t);
1706
1707char*
1708target_reverse_lookup_unify (target_t);
1709
1710char*
1711target_allow_simultaneous_ips (target_t);
1712
1713char*
1714target_port_range (target_t);
1715
1716char*
1717target_ssh_port (target_t);
1718
1719int
1720target_in_use (target_t);
1721
1722int
1723trash_target_in_use (target_t);
1724
1725int
1726target_writable (target_t);
1727
1728int
1729trash_target_writable (target_t);
1730
1731char*
1732target_ssh_credential_name (const char *);
1733
1734void
1735init_target_task_iterator (iterator_t*, target_t);
1736
1737const char*
1738target_task_iterator_name (iterator_t*);
1739
1740const char*
1741target_task_iterator_uuid (iterator_t*);
1742
1743int
1744target_task_iterator_readable (iterator_t*);
1745
1746credential_t
1747target_credential (target_t, const char*);
1748
1749int
1750target_login_port (target_t, const char*);
1751
1752
1753/* Configs.
1754 *
1755 * These are here because they need definitions that are still in manage.h. */
1756
1757int
1758create_task_check_scanner_type (scanner_t);
1759
1760int
1761modify_task_check_config_scanner (task_t, const char *, const char *);
1762
1763
1764/* NVT's. */
1765
1766char *
1767manage_nvt_name (nvt_t);
1768
1769char *
1770nvt_name (const char *);
1771
1772char*
1773nvts_feed_version ();
1774
1775time_t
1776nvts_feed_version_epoch ();
1777
1778void
1779set_nvts_feed_version (const char*);
1780
1781gboolean
1782find_nvt (const char*, nvt_t*);
1783
1784int
1785init_nvt_info_iterator (iterator_t*, get_data_t*, const char*);
1786
1787int
1788nvt_info_count (const get_data_t *);
1789
1790int
1791nvt_info_count_after (const get_data_t *, time_t, gboolean);
1792
1793void
1794init_nvt_iterator (iterator_t*, nvt_t, config_t, const char*, const char*, int,
1795 const char*);
1796
1797void
1798init_cve_nvt_iterator (iterator_t*, const char *, int, const char*);
1799
1800const char*
1801nvt_iterator_oid (iterator_t*);
1802
1803const char*
1804nvt_iterator_version (iterator_t*);
1805
1806const char*
1807nvt_iterator_name (iterator_t*);
1808
1809const char*
1810nvt_iterator_summary (iterator_t*);
1811
1812const char*
1813nvt_iterator_insight (iterator_t*);
1814
1815const char*
1816nvt_iterator_affected (iterator_t*);
1817
1818const char*
1819nvt_iterator_impact (iterator_t*);
1820
1821const char*
1822nvt_iterator_description (iterator_t*);
1823
1824const char*
1825nvt_iterator_tag (iterator_t*);
1826
1827int
1828nvt_iterator_category (iterator_t*);
1829
1830const char*
1831nvt_iterator_family (iterator_t*);
1832
1833const char*
1834nvt_iterator_cvss_base (iterator_t*);
1835
1836const char*
1837nvt_iterator_detection (iterator_t*);
1838
1839const char*
1840nvt_iterator_qod (iterator_t*);
1841
1842const char*
1843nvt_iterator_qod_type ( iterator_t *iterator );
1844
1845const char*
1846nvt_iterator_solution (iterator_t*);
1847
1848const char*
1849nvt_iterator_solution_type (iterator_t*);
1850
1851const char*
1852nvt_iterator_solution_method (iterator_t*);
1853
1854char*
1855nvt_default_timeout (const char *);
1856
1857int
1858family_nvt_count (const char *);
1859
1860
1861/* NVT selectors. */
1862
1866#define NVT_SELECTOR_TYPE_ALL 0
1867
1871#define NVT_SELECTOR_TYPE_FAMILY 1
1872
1876#define NVT_SELECTOR_TYPE_NVT 2
1877
1881#define NVT_SELECTOR_TYPE_ANY 999
1882
1883void
1884init_family_iterator (iterator_t*, int, const char*, int);
1885
1886const char*
1887family_iterator_name (iterator_t*);
1888
1889int
1890nvt_selector_family_growing (const char *, const char *, int);
1891
1892int
1893nvt_selector_family_count (const char*, int);
1894
1895int
1896nvt_selector_nvt_count (const char *, const char *, int);
1897
1898void
1899init_nvt_selector_iterator (iterator_t*, const char*, config_t, int);
1900
1901const char*
1902nvt_selector_iterator_nvt (iterator_t*);
1903
1904const char*
1905nvt_selector_iterator_name (iterator_t*);
1906
1907int
1908nvt_selector_iterator_include (iterator_t*);
1909
1910int
1911nvt_selector_iterator_type (iterator_t*);
1912
1913
1914/* NVT preferences. */
1915
1916void
1917manage_nvt_preference_add (const char*, const char*);
1918
1919void
1920manage_nvt_preferences_enable ();
1921
1922void
1923init_nvt_preference_iterator (iterator_t*, const char*);
1924
1925const char*
1926nvt_preference_iterator_name (iterator_t*);
1927
1928const char*
1929nvt_preference_iterator_value (iterator_t*);
1930
1931char*
1932nvt_preference_iterator_config_value (iterator_t*, config_t);
1933
1934char*
1935nvt_preference_iterator_real_name (iterator_t*);
1936
1937char*
1938nvt_preference_iterator_type (iterator_t*);
1939
1940char*
1941nvt_preference_iterator_oid (iterator_t*);
1942
1943char*
1944nvt_preference_iterator_id (iterator_t*);
1945
1946int
1947nvt_preference_count (const char *);
1948
1949void
1950xml_append_nvt_refs (GString *, const char *, int *);
1951
1952gchar*
1953get_nvt_xml (iterator_t*, int, int, int, const char*, config_t, int);
1954
1955char*
1956task_preference_value (task_t, const char *);
1957
1958int
1959set_task_preferences (task_t, array_t *);
1960
1961void
1962init_task_group_iterator (iterator_t *, task_t);
1963
1964const char*
1965task_group_iterator_name (iterator_t*);
1966
1967const char*
1968task_group_iterator_uuid (iterator_t*);
1969
1970void
1971init_task_role_iterator (iterator_t *, task_t);
1972
1973const char*
1974task_role_iterator_name (iterator_t*);
1975
1976const char*
1977task_role_iterator_uuid (iterator_t*);
1978
1979/* NVT severities */
1980void
1981init_nvt_severity_iterator (iterator_t *, const char *);
1982
1983const char *
1984nvt_severity_iterator_type (iterator_t *);
1985
1986const char *
1987nvt_severity_iterator_origin (iterator_t *);
1988
1989const char *
1990nvt_severity_iterator_date (iterator_t *);
1991
1992double
1993nvt_severity_iterator_score (iterator_t *);
1994
1995const char *
1996nvt_severity_iterator_value (iterator_t *);
1997
1998
1999/* Credentials. */
2000
2004typedef enum
2005{
2006 CREDENTIAL_FORMAT_NONE = 0,
2007 CREDENTIAL_FORMAT_KEY = 1,
2008 CREDENTIAL_FORMAT_RPM = 2,
2009 CREDENTIAL_FORMAT_DEB = 3,
2010 CREDENTIAL_FORMAT_EXE = 4,
2011 CREDENTIAL_FORMAT_PEM = 5,
2012 CREDENTIAL_FORMAT_ERROR = -1
2013} credential_format_t;
2014
2015int
2016check_private_key (const char *, const char *);
2017
2018gboolean
2019find_credential_with_permission (const char*, credential_t*, const char*);
2020
2021int
2022create_credential (const char*, const char*, const char*, const char*,
2023 const char*, const char*, const char*, const char*,
2024 const char*, const char*, const char*, const char*,
2025 const char*, credential_t*);
2026
2027int
2028copy_credential (const char*, const char*, const char*,
2029 credential_t*);
2030
2031int
2032modify_credential (const char*, const char*, const char*, const char*,
2033 const char*, const char*, const char*, const char*,
2034 const char*, const char*, const char*, const char*,
2035 const char*);
2036
2037int
2038delete_credential (const char *, int);
2039
2040int
2041credential_count (const get_data_t *);
2042
2043void
2044set_credential_privacy_algorithm (credential_t, const char *);
2045
2046void
2047set_credential_public_key (credential_t, const char *);
2048
2049void
2050init_credential_iterator_one (iterator_t*, credential_t);
2051
2052int
2053init_credential_iterator (iterator_t*, const get_data_t *);
2054
2055const char*
2056credential_iterator_login (iterator_t*);
2057
2058const char*
2059credential_iterator_auth_algorithm (iterator_t*);
2060
2061const char*
2062credential_iterator_privacy_algorithm (iterator_t*);
2063
2064const char*
2065credential_iterator_password (iterator_t*);
2066
2067const char*
2068credential_iterator_community (iterator_t*);
2069
2070const char*
2071credential_iterator_privacy_password (iterator_t*);
2072
2073const char*
2074credential_iterator_public_key (iterator_t*);
2075
2076const char*
2077credential_iterator_private_key (iterator_t*);
2078
2079const char*
2080credential_iterator_type (iterator_t*);
2081
2082int
2083credential_iterator_allow_insecure (iterator_t*);
2084
2085const char*
2086credential_full_type (const char*);
2087
2088char*
2089credential_iterator_rpm (iterator_t*);
2090
2091char*
2092credential_iterator_deb (iterator_t*);
2093
2094char*
2095credential_iterator_exe (iterator_t*);
2096
2097const char*
2098credential_iterator_certificate (iterator_t*);
2099
2100gboolean
2101credential_iterator_format_available (iterator_t*, credential_format_t);
2102
2103gchar *
2104credential_iterator_formats_xml (iterator_t* iterator);
2105
2106char*
2107credential_uuid (credential_t);
2108
2109char*
2110trash_credential_uuid (credential_t);
2111
2112char*
2113credential_name (credential_t);
2114
2115char*
2116trash_credential_name (credential_t);
2117
2118char*
2119credential_type (credential_t);
2120
2121void
2122init_credential_target_iterator (iterator_t*, credential_t, int);
2123
2124const char*
2125credential_target_iterator_uuid (iterator_t*);
2126
2127const char*
2128credential_target_iterator_name (iterator_t*);
2129
2130int
2131credential_target_iterator_readable (iterator_t*);
2132
2133void
2134init_credential_scanner_iterator (iterator_t*, credential_t, int);
2135
2136const char*
2137credential_scanner_iterator_uuid (iterator_t*);
2138
2139const char*
2140credential_scanner_iterator_name (iterator_t*);
2141
2142int
2143credential_scanner_iterator_readable (iterator_t*);
2144
2145int
2146trash_credential_in_use (credential_t);
2147
2148int
2149credential_in_use (credential_t);
2150
2151int
2152trash_credential_writable (credential_t);
2153
2154int
2155credential_writable (credential_t);
2156
2157int
2158trash_credential_readable (credential_t);
2159
2160gchar*
2161credential_value (credential_t, const char*);
2162
2163gchar*
2164credential_encrypted_value (credential_t, const char*);
2165
2166
2167
2168/* Assets. */
2169
2170char *
2171result_host_asset_id (const char *, result_t);
2172
2173char*
2174host_uuid (resource_t);
2175
2176host_t
2177host_notice (const char *, const char *, const char *, const char *,
2178 const char *, int, int);
2179
2180void
2181init_host_identifier_iterator (iterator_t*, host_t, int, const char*);
2182
2183const char*
2184host_identifier_iterator_value (iterator_t *);
2185
2186const char*
2187host_identifier_iterator_source_type (iterator_t *);
2188
2189const char*
2190host_identifier_iterator_source_id (iterator_t *);
2191
2192const char*
2193host_identifier_iterator_source_data (iterator_t *);
2194
2195int
2196host_identifier_iterator_source_orphan (iterator_t *);
2197
2198const char*
2199host_identifier_iterator_os_id (iterator_t *);
2200
2201const char*
2202host_identifier_iterator_os_title (iterator_t *);
2203
2204int
2205init_asset_host_iterator (iterator_t *, const get_data_t *);
2206
2207int
2208asset_iterator_writable (iterator_t *);
2209
2210int
2211asset_iterator_in_use (iterator_t *);
2212
2213const char*
2214asset_host_iterator_severity (iterator_t *);
2215
2216int
2217asset_host_count (const get_data_t *);
2218
2219int
2220init_asset_os_iterator (iterator_t *, const get_data_t *);
2221
2222const char*
2223asset_os_iterator_title (iterator_t *);
2224
2225int
2226asset_os_iterator_installs (iterator_t *);
2227
2228const char*
2229asset_os_iterator_latest_severity (iterator_t *);
2230
2231const char*
2232asset_os_iterator_highest_severity (iterator_t *);
2233
2234const char*
2235asset_os_iterator_average_severity (iterator_t *);
2236
2237int
2238asset_os_count (const get_data_t *);
2239
2240int
2241total_asset_count (const get_data_t *);
2242
2243void
2244init_os_host_iterator (iterator_t *, resource_t);
2245
2246const char*
2247os_host_iterator_severity (iterator_t *);
2248
2249void
2250init_host_detail_iterator (iterator_t *, resource_t);
2251
2252const char*
2253host_detail_iterator_name (iterator_t *);
2254
2255const char*
2256host_detail_iterator_value (iterator_t *);
2257
2258const char*
2259host_detail_iterator_source_type (iterator_t *);
2260
2261const char*
2262host_detail_iterator_source_id (iterator_t *);
2263
2264int
2265modify_asset (const char *, const char *);
2266
2267int
2268delete_asset (const char *, const char *, int);
2269
2270int
2271create_asset_report (const char *, const char *);
2272
2273int
2274create_asset_host (const char *, const char *, resource_t* );
2275
2276int
2277add_assets_from_host_in_report (report_t report, const char *host);
2278
2279
2280/* Notes. */
2281
2282gboolean
2283find_note_with_permission (const char*, note_t*, const char *);
2284
2285int
2286create_note (const char*, const char*, const char*, const char*, const char*,
2287 const char*, const char*, task_t, result_t, note_t*);
2288
2289int
2290copy_note (const char*, note_t*);
2291
2292int
2293delete_note (const char *, int);
2294
2295int
2296note_uuid (note_t, char **);
2297
2298int
2299modify_note (const gchar *, const char *, const char *, const char *,
2300 const char *, const char *, const char *, const char *,
2301 const gchar *, const gchar *);
2302
2303int
2304note_count (const get_data_t *, nvt_t, result_t, task_t);
2305
2306int
2307init_note_iterator (iterator_t*, const get_data_t*, nvt_t, result_t, task_t);
2308
2309const char*
2310note_iterator_nvt_oid (iterator_t*);
2311
2312time_t
2313note_iterator_creation_time (iterator_t*);
2314
2315time_t
2316note_iterator_modification_time (iterator_t*);
2317
2318const char*
2319note_iterator_text (iterator_t*);
2320
2321const char*
2322note_iterator_hosts (iterator_t*);
2323
2324const char*
2325note_iterator_port (iterator_t*);
2326
2327const char*
2328note_iterator_threat (iterator_t*);
2329
2330task_t
2331note_iterator_task (iterator_t*);
2332
2333result_t
2334note_iterator_result (iterator_t*);
2335
2336time_t
2337note_iterator_end_time (iterator_t*);
2338
2339int
2340note_iterator_active (iterator_t*);
2341
2342const char*
2343note_iterator_nvt_name (iterator_t *);
2344
2345const char *
2346note_iterator_nvt_type (iterator_t *);
2347
2348const char*
2349note_iterator_severity (iterator_t *);
2350
2351
2352/* Overrides. */
2353
2354gboolean
2355find_override_with_permission (const char*, override_t*, const char *);
2356
2357int
2358create_override (const char*, const char*, const char*, const char*,
2359 const char*, const char*, const char*, const char*,
2360 const char*, task_t, result_t, override_t*);
2361
2362int
2363override_uuid (override_t, char **);
2364
2365int
2366copy_override (const char*, override_t*);
2367
2368int
2369delete_override (const char *, int);
2370
2371int
2372modify_override (const gchar *, const char *, const char *, const char *,
2373 const char *, const char *, const char *, const char *,
2374 const char *, const char *, const gchar *, const gchar *);
2375
2376int
2377override_count (const get_data_t *, nvt_t, result_t, task_t);
2378
2379int
2380init_override_iterator (iterator_t*, const get_data_t*, nvt_t, result_t,
2381 task_t);
2382
2383const char*
2384override_iterator_nvt_oid (iterator_t*);
2385
2386time_t
2387override_iterator_creation_time (iterator_t*);
2388
2389time_t
2390override_iterator_modification_time (iterator_t*);
2391
2392const char*
2393override_iterator_text (iterator_t*);
2394
2395const char*
2396override_iterator_hosts (iterator_t*);
2397
2398const char*
2399override_iterator_port (iterator_t*);
2400
2401const char*
2402override_iterator_threat (iterator_t*);
2403
2404const char*
2405override_iterator_new_threat (iterator_t*);
2406
2407task_t
2408override_iterator_task (iterator_t*);
2409
2410result_t
2411override_iterator_result (iterator_t*);
2412
2413time_t
2414override_iterator_end_time (iterator_t*);
2415
2416int
2417override_iterator_active (iterator_t*);
2418
2419const char*
2420override_iterator_nvt_name (iterator_t *);
2421
2422const char *
2423override_iterator_nvt_type (iterator_t *);
2424
2425const char*
2426override_iterator_severity (iterator_t *);
2427
2428const char*
2429override_iterator_new_severity (iterator_t *);
2430
2431
2432/* System reports. */
2433
2437typedef struct
2438{
2439 gchar **start;
2440 gchar **current;
2442
2443int
2445 const char*);
2446
2447void
2449
2450gboolean
2452
2453const char*
2455
2456const char*
2458
2459int
2460manage_system_report (const char *, const char *, const char *, const char *,
2461 const char *, char **);
2462
2463
2464/* Scanners. */
2465
2469#define SCANNER_CONNECTION_RETRY_DEFAULT 3
2470
2471int
2472manage_create_scanner (GSList *, const db_conn_info_t *, const char *,
2473 const char *, const char *, const char *, const char *,
2474 const char *, const char *, const char *);
2475
2476int
2477manage_modify_scanner (GSList *, const db_conn_info_t *, const char *,
2478 const char *, const char *, const char *, const char *,
2479 const char *, const char *, const char *, const char *);
2480
2481int
2482manage_delete_scanner (GSList *, const db_conn_info_t *, const gchar *);
2483
2484int
2485manage_verify_scanner (GSList *, const db_conn_info_t *, const gchar *);
2486
2487int
2488manage_get_scanners (GSList *, const db_conn_info_t *);
2489
2490int
2491create_scanner (const char*, const char *, const char *, const char *,
2492 const char *, scanner_t *, const char *, const char *);
2493
2494int
2495copy_scanner (const char*, const char*, const char *, scanner_t *);
2496
2497int
2498modify_scanner (const char*, const char*, const char*, const char *,
2499 const char *, const char *, const char *, const char *);
2500
2501int
2502delete_scanner (const char *, int);
2503
2504gboolean
2505find_scanner_with_permission (const char *, scanner_t *, const char *);
2506
2507int
2508scanner_in_use (scanner_t);
2509
2510int
2511trash_scanner_readable (scanner_t);
2512
2513int
2514trash_scanner_in_use (scanner_t);
2515
2516int
2517trash_scanner_writable (scanner_t);
2518
2519int
2520scanner_writable (scanner_t);
2521
2522const char *
2523scanner_uuid_default ();
2524
2525char *
2526scanner_host (scanner_t);
2527
2528int
2529scanner_port (scanner_t);
2530
2531int
2532scanner_type (scanner_t);
2533
2534char *
2535scanner_ca_pub (scanner_t);
2536
2537char *
2538scanner_key_pub (scanner_t);
2539
2540char *
2541scanner_key_priv (scanner_t);
2542
2543char*
2544scanner_login (scanner_t);
2545
2546char*
2547scanner_password (scanner_t);
2548
2549int
2550scanner_count (const get_data_t *);
2551
2552char *
2553openvas_default_scanner_host ();
2554
2555int
2556init_scanner_iterator (iterator_t*, const get_data_t *);
2557
2558const char*
2559scanner_iterator_host (iterator_t*);
2560
2561int
2562scanner_iterator_port (iterator_t*);
2563
2564int
2565scanner_iterator_type (iterator_t*);
2566
2567const char*
2568scanner_iterator_credential_name (iterator_t *);
2569
2570credential_t
2571scanner_iterator_credential (iterator_t *);
2572
2573int
2574scanner_iterator_credential_trash (iterator_t*);
2575
2576const char*
2577scanner_iterator_ca_pub (iterator_t *);
2578
2579const char*
2580scanner_iterator_key_pub (iterator_t *);
2581
2582const char*
2583scanner_iterator_credential_type (iterator_t *);
2584
2585int
2586scanner_config_iterator_readable (iterator_t *);
2587
2588void
2589init_scanner_task_iterator (iterator_t*, scanner_t);
2590
2591const char*
2592scanner_task_iterator_uuid (iterator_t *);
2593
2594const char*
2595scanner_task_iterator_name (iterator_t *);
2596
2597int
2598scanner_task_iterator_readable (iterator_t *);
2599
2600char *
2601scanner_name (scanner_t);
2602
2603char *
2604scanner_uuid (scanner_t);
2605
2606char *
2607trash_scanner_name (scanner_t);
2608
2609char *
2610trash_scanner_uuid (scanner_t);
2611
2612int
2613osp_get_version_from_iterator (iterator_t *, char **, char **, char **, char **,
2614 char **, char **);
2615
2616int
2617osp_get_details_from_iterator (iterator_t *, char **, GSList **);
2618
2619osp_connection_t *
2620osp_connect_with_data (const char *,
2621 int,
2622 const char *,
2623 const char *,
2624 const char *);
2625
2626osp_connection_t *
2627osp_scanner_connect (scanner_t);
2628
2629int
2631
2632void
2634
2635int
2636verify_scanner (const char *, char **);
2637
2638const char *
2640
2641void
2642set_relay_mapper_path (const char *);
2643
2644int
2646
2647void
2649
2650gboolean
2651relay_supports_scanner_type (const char *, int, scanner_type_t);
2652
2653int
2654slave_get_relay (const char *,
2655 int,
2656 const char *,
2657 const char *,
2658 gchar **,
2659 int *,
2660 gchar **);
2661
2662int
2663slave_relay_connection (gvm_connection_t *, gvm_connection_t *);
2664
2665/* Scheduling. */
2666
2670#define SCHEDULE_PERIOD 10
2671
2676#define SCHEDULE_TIMEOUT_MIN_SECS 20
2677
2681#define SCHEDULE_TIMEOUT_DEFAULT 60
2682
2683gboolean
2684find_schedule_with_permission (const char*, schedule_t*, const char*);
2685
2686int
2687create_schedule (const char *, const char*, const char *,
2688 const char*, schedule_t *, gchar**);
2689
2690int
2691copy_schedule (const char*, const char*, const char *, schedule_t *);
2692
2693int
2694delete_schedule (const char*, int);
2695
2696void
2698
2699const gchar*
2701
2702void
2703set_scheduled_user_uuid (const gchar* uuid);
2704
2705void
2706manage_sync (sigset_t *, int (*fork_update_nvt_cache) (), gboolean);
2707
2708int
2710 GSList *,
2711 const db_conn_info_t *,
2712 gchar **);
2713
2714int
2715manage_schedule (manage_connection_forker_t,
2716 gboolean,
2717 sigset_t *);
2718
2719char *
2720schedule_uuid (schedule_t);
2721
2722char *
2723trash_schedule_uuid (schedule_t);
2724
2725char *
2726schedule_name (schedule_t);
2727
2728char *
2729trash_schedule_name (schedule_t);
2730
2731int
2732schedule_duration (schedule_t);
2733
2734int
2735schedule_period (schedule_t);
2736
2737int
2738schedule_info (schedule_t, int, gchar **, gchar **);
2739
2740int
2741init_schedule_iterator (iterator_t*, const get_data_t *);
2742
2743const char*
2744schedule_iterator_timezone (iterator_t *);
2745
2746const char*
2747schedule_iterator_icalendar (iterator_t *);
2748
2749int
2750trash_schedule_in_use (schedule_t);
2751
2752int
2753schedule_in_use (schedule_t);
2754
2755int
2756trash_schedule_writable (schedule_t);
2757
2758int
2759trash_schedule_readable (schedule_t);
2760
2761int
2762schedule_writable (schedule_t);
2763
2764int
2765schedule_count (const get_data_t *);
2766
2767void
2768init_schedule_task_iterator (iterator_t*, schedule_t);
2769
2770const char*
2771schedule_task_iterator_uuid (iterator_t *);
2772
2773const char*
2774schedule_task_iterator_name (iterator_t *);
2775
2776int
2777schedule_task_iterator_readable (iterator_t*);
2778
2779int
2780modify_schedule (const char *, const char *, const char *, const char*,
2781 const char *, gchar **);
2782
2783int
2785
2786void
2788
2789
2790/* Groups. */
2791
2792int
2793init_group_iterator (iterator_t *, const get_data_t *);
2794
2795int
2796copy_group (const char *, const char *, const char *, group_t *);
2797
2798int
2799create_group (const char *, const char *, const char *, int, group_t *);
2800
2801int
2802delete_group (const char *, int);
2803
2804char*
2805group_uuid (group_t);
2806
2807gchar *
2808group_users (group_t);
2809
2810int
2811trash_group_in_use (group_t);
2812
2813int
2814group_in_use (group_t);
2815
2816int
2817trash_group_writable (group_t);
2818
2819int
2820group_writable (group_t);
2821
2822int
2823group_count (const get_data_t*);
2824
2825int
2826modify_group (const char *, const char *, const char *, const char *);
2827
2828
2829/* Permissions. */
2830
2831int
2832create_permission (const char *, const char *, const char *, const char *,
2833 const char *, const char *, permission_t *);
2834
2835int
2836copy_permission (const char*, const char *, permission_t *);
2837
2838char*
2839permission_uuid (permission_t);
2840
2841int
2842permission_is_admin (const char *);
2843
2844int
2845permission_in_use (permission_t);
2846
2847int
2848trash_permission_in_use (permission_t);
2849
2850int
2851permission_writable (permission_t);
2852
2853int
2854trash_permission_writable (permission_t);
2855
2856int
2857permission_count (const get_data_t *);
2858
2859int
2860init_permission_iterator (iterator_t*, const get_data_t *);
2861
2862const char*
2863permission_iterator_resource_type (iterator_t*);
2864
2865const char*
2866permission_iterator_resource_uuid (iterator_t*);
2867
2868const char*
2869permission_iterator_resource_name (iterator_t*);
2870
2871int
2872permission_iterator_resource_in_trash (iterator_t*);
2873
2874int
2875permission_iterator_resource_orphan (iterator_t*);
2876
2877int
2878permission_iterator_resource_readable (iterator_t*);
2879
2880const char*
2881permission_iterator_subject_type (iterator_t*);
2882
2883const char*
2884permission_iterator_subject_uuid (iterator_t*);
2885
2886const char*
2887permission_iterator_subject_name (iterator_t*);
2888
2889int
2890permission_iterator_subject_in_trash (iterator_t*);
2891
2892int
2893permission_iterator_subject_readable (iterator_t*);
2894
2895int
2896delete_permission (const char*, int);
2897
2898int
2899modify_permission (const char *, const char *, const char *, const char *,
2900 const char *, const char *, const char *);
2901
2902/* Permission caching */
2903
2904void
2905delete_permissions_cache_for_resource (const char*, resource_t);
2906
2907void
2908delete_permissions_cache_for_user (user_t);
2909
2910
2911/* Roles. */
2912
2913int
2914manage_get_roles (GSList *, const db_conn_info_t *, int);
2915
2916int
2917init_role_iterator (iterator_t *, const get_data_t *);
2918
2919int
2920copy_role (const char *, const char *, const char *, role_t *);
2921
2922int
2923create_role (const char *, const char *, const char *, role_t *);
2924
2925int
2926delete_role (const char *, int);
2927
2928char*
2929role_uuid (role_t);
2930
2931gchar *
2932role_users (role_t);
2933
2934int
2935trash_role_in_use (role_t);
2936
2937int
2938role_in_use (role_t);
2939
2940int
2941trash_role_writable (role_t);
2942
2943int
2944role_writable (role_t);
2945
2946int
2947role_count (const get_data_t*);
2948
2949int
2950modify_role (const char *, const char *, const char *, const char *);
2951
2952
2953/* Filter Utilities. */
2954
2958typedef enum
2959{
2960 KEYWORD_TYPE_UNKNOWN,
2961 KEYWORD_TYPE_INTEGER,
2962 KEYWORD_TYPE_DOUBLE,
2963 KEYWORD_TYPE_STRING
2964} keyword_type_t;
2965
2969typedef enum
2970{
2971 KEYWORD_RELATION_APPROX,
2972 KEYWORD_RELATION_COLUMN_ABOVE,
2973 KEYWORD_RELATION_COLUMN_APPROX,
2974 KEYWORD_RELATION_COLUMN_EQUAL,
2975 KEYWORD_RELATION_COLUMN_BELOW,
2976 KEYWORD_RELATION_COLUMN_REGEXP
2977} keyword_relation_t;
2978
2983{
2984 gchar *column;
2986 int equal;
2990 gchar *string;
2991 keyword_type_t type;
2992 keyword_relation_t relation;
2993};
2994
2998typedef struct keyword keyword_t;
2999
3000int
3001keyword_special (keyword_t *);
3002
3003const char *
3004keyword_relation_symbol (keyword_relation_t);
3005
3006void
3007filter_free (array_t*);
3008
3009array_t *
3010split_filter (const gchar*);
3011
3012
3013/* Filters. */
3014
3018#define FILT_ID_NONE "0"
3019
3023#define FILT_ID_USER_SETTING "-2"
3024
3025gboolean
3026find_filter (const char*, filter_t*);
3027
3028gboolean
3029find_filter_with_permission (const char*, filter_t*, const char*);
3030
3031char*
3032filter_uuid (filter_t);
3033
3034char*
3035filter_name (filter_t);
3036
3037gchar*
3038filter_term (const char *);
3039
3040gchar*
3041filter_term_value (const char *, const char *);
3042
3043int
3044filter_term_apply_overrides (const char *);
3045
3046int
3047filter_term_min_qod (const char *);
3048
3049int
3050create_filter (const char*, const char*, const char*, const char*, filter_t*);
3051
3052int
3053copy_filter (const char*, const char*, const char*, filter_t*);
3054
3055int
3056delete_filter (const char *, int);
3057
3058int
3059trash_filter_in_use (filter_t);
3060
3061int
3062filter_in_use (filter_t);
3063
3064int
3065trash_filter_writable (filter_t);
3066
3067int
3068filter_writable (filter_t);
3069
3070int
3071filter_count (const get_data_t*);
3072
3073int
3074init_filter_iterator (iterator_t*, const get_data_t*);
3075
3076const char*
3077filter_iterator_type (iterator_t*);
3078
3079const char*
3080filter_iterator_term (iterator_t*);
3081
3082void
3083init_filter_alert_iterator (iterator_t*, filter_t);
3084
3085const char*
3086filter_alert_iterator_name (iterator_t*);
3087
3088const char*
3089filter_alert_iterator_uuid (iterator_t*);
3090
3091int
3092filter_alert_iterator_readable (iterator_t*);
3093
3094int
3095modify_filter (const char*, const char*, const char*, const char*, const char*);
3096
3097
3098/* Schema. */
3099
3100int
3101manage_schema (gchar *, gchar **, gsize *, gchar **, gchar **);
3102
3103
3104/* Trashcan. */
3105
3106int
3107manage_restore (const char *);
3108
3109int
3110manage_empty_trashcan ();
3111
3112
3113/* SecInfo */
3114
3115int
3116manage_read_info (gchar *, gchar *, gchar *, gchar **);
3117
3118int
3119info_name_count (const gchar *, const gchar *);
3120
3121/* SCAP. */
3122
3123int
3124manage_scap_loaded ();
3125
3126const char *
3128
3129/* CPE. */
3130
3131void
3132init_cpe_cve_iterator (iterator_t *, const char *, int, const char *);
3133
3134int
3135init_cpe_info_iterator (iterator_t*, get_data_t*, const char*);
3136
3137int
3138cpe_info_count (const get_data_t *get);
3139
3140const char*
3141cpe_info_iterator_title (iterator_t*);
3142
3143const char*
3144cpe_info_iterator_status (iterator_t*);
3145
3146const char *
3147cpe_info_iterator_severity (iterator_t*);
3148
3149const char*
3150cpe_info_iterator_deprecated_by_id (iterator_t*);
3151
3152const char*
3153cpe_info_iterator_cve_refs (iterator_t*);
3154
3155const char*
3156cpe_info_iterator_nvd_id (iterator_t*);
3157
3158/* CVE. */
3159
3160const char*
3161cve_iterator_name (iterator_t*);
3162
3163const char*
3164cve_iterator_cvss_score (iterator_t*);
3165
3166const char*
3167cve_info_iterator_severity (iterator_t*);
3168
3169const char*
3170cve_info_iterator_vector (iterator_t*);
3171
3172const char*
3173cve_info_iterator_description (iterator_t*);
3174
3175const char*
3176cve_info_iterator_products (iterator_t*);
3177
3178int
3179init_cve_info_iterator (iterator_t*, get_data_t*, const char*);
3180
3181int
3182cve_info_count (const get_data_t *get);
3183
3184gchar *
3185cve_cvss_base (const gchar *);
3186
3187/* CERT data */
3188int
3189manage_cert_loaded ();
3190
3191/* CERT-Bund */
3192
3193int
3194init_cert_bund_adv_info_iterator (iterator_t*, get_data_t*, const char*);
3195
3196int
3197cert_bund_adv_info_count (const get_data_t *get);
3198
3199const char*
3200cert_bund_adv_info_iterator_title (iterator_t*);
3201
3202const char*
3203cert_bund_adv_info_iterator_summary (iterator_t*);
3204
3205const char*
3206cert_bund_adv_info_iterator_cve_refs (iterator_t*);
3207
3208const char*
3209cert_bund_adv_info_iterator_severity (iterator_t*);
3210
3211void
3212init_cve_cert_bund_adv_iterator (iterator_t*, const char*, int, const char*);
3213
3214void
3215init_nvt_cert_bund_adv_iterator (iterator_t*, const char*);
3216
3217const char*
3218nvt_cert_bund_adv_iterator_name (iterator_t*);
3219
3220/* DFN-CERT */
3221
3222int
3223init_dfn_cert_adv_info_iterator (iterator_t*, get_data_t*, const char*);
3224
3225int
3226dfn_cert_adv_info_count (const get_data_t *get);
3227
3228const char*
3229dfn_cert_adv_info_iterator_title (iterator_t*);
3230
3231const char*
3232dfn_cert_adv_info_iterator_summary (iterator_t*);
3233
3234const char*
3235dfn_cert_adv_info_iterator_cve_refs (iterator_t*);
3236
3237const char*
3238dfn_cert_adv_info_iterator_severity (iterator_t*);
3239
3240void
3241init_cve_dfn_cert_adv_iterator (iterator_t*, const char*, int, const char*);
3242
3243void
3244init_nvt_dfn_cert_adv_iterator (iterator_t*, const char*);
3245
3246const char*
3247nvt_dfn_cert_adv_iterator_name (iterator_t*);
3248
3249/* All SecInfo Data */
3250
3251int
3252secinfo_count_after (const get_data_t *, const char *, time_t, gboolean);
3253
3254
3255/* Settings. */
3256
3257int
3258manage_max_rows (int);
3259
3260int
3261setting_count (const char *);
3262
3263int
3264setting_is_default_ca_cert (const gchar *);
3265
3266char *
3267setting_filter (const char *);
3268
3269void
3270init_setting_iterator (iterator_t *, const char *, const char *, int, int, int,
3271 const char *);
3272
3273const char*
3274setting_iterator_uuid (iterator_t*);
3275
3276const char*
3277setting_iterator_name (iterator_t*);
3278
3279const char*
3280setting_iterator_comment (iterator_t*);
3281
3282const char*
3283setting_iterator_value (iterator_t*);
3284
3285int
3286modify_setting (const gchar *, const gchar *, const gchar *, gchar **);
3287
3288int
3289manage_modify_setting (GSList *, const db_conn_info_t *, const gchar *,
3290 const gchar *, const char *);
3291
3292char *
3293manage_default_ca_cert ();
3294
3295
3296/* Users. */
3297
3298gboolean
3299find_user_by_name_with_permission (const char *, user_t *, const char *);
3300
3301int
3302manage_create_user (GSList *, const db_conn_info_t *, const gchar *,
3303 const gchar *, const gchar *);
3304
3305int
3306manage_delete_user (GSList *, const db_conn_info_t *, const gchar *,
3307 const gchar *);
3308
3309int
3310manage_get_users (GSList *, const db_conn_info_t *, const gchar *, int);
3311
3312report_host_t
3313manage_report_host_add (report_t, const char *, time_t, time_t);
3314
3315int
3316report_host_noticeable (report_t, const gchar *);
3317
3318void
3319report_host_set_end_time (report_host_t, time_t);
3320
3321gchar*
3322host_routes_xml (host_t);
3323
3324int
3325manage_set_password (GSList *, const db_conn_info_t *, const gchar *,
3326 const gchar *);
3327
3328gchar *
3329manage_user_hash (const gchar *);
3330
3331gchar *
3332manage_user_uuid (const gchar *, auth_method_t);
3333
3334int
3335manage_user_exists (const gchar *, auth_method_t);
3336
3337int
3338copy_user (const char*, const char*, const char*, user_t*);
3339
3340gchar *
3341keyfile_to_auth_conf_settings_xml (const gchar *);
3342
3343int
3344init_user_iterator (iterator_t*, const get_data_t*);
3345
3346const char*
3347user_iterator_role (iterator_t*);
3348
3349const char*
3350user_iterator_method (iterator_t*);
3351
3352const char*
3353user_iterator_hosts (iterator_t*);
3354
3355int
3356user_iterator_hosts_allow (iterator_t*);
3357
3358void
3359init_user_group_iterator (iterator_t *, user_t);
3360
3361const char*
3362user_group_iterator_uuid (iterator_t*);
3363
3364const char*
3365user_group_iterator_name (iterator_t*);
3366
3367int
3368user_group_iterator_readable (iterator_t*);
3369
3370void
3371init_user_role_iterator (iterator_t *, user_t);
3372
3373const char*
3374user_role_iterator_uuid (iterator_t*);
3375
3376const char*
3377user_role_iterator_name (iterator_t*);
3378
3379int
3380user_role_iterator_readable (iterator_t*);
3381
3382int
3383create_user (const gchar *, const gchar *, const gchar *, const gchar *,
3384 int, const array_t *, array_t *, gchar **,
3385 array_t *, gchar **, gchar **, user_t *, int);
3386
3387int
3388delete_user (const char *, const char *, int, int, const char*, const char*);
3389
3390int
3391modify_user (const gchar *, gchar **, const gchar *, const gchar *,
3392 const gchar*, const gchar *, int,
3393 const array_t *, array_t *, gchar **, array_t *, gchar **,
3394 gchar **);
3395
3396int
3397user_in_use (user_t);
3398
3399int
3400trash_user_in_use (user_t);
3401
3402int
3403user_writable (user_t);
3404
3405int
3406trash_user_writable (user_t);
3407
3408int
3409user_count (const get_data_t*);
3410
3411gchar*
3412user_name (const char *);
3413
3414char*
3415user_uuid (user_t);
3416
3417gchar*
3418user_hosts (const char *);
3419
3420int
3421user_hosts_allow (const char *);
3422
3423int
3424init_vuln_iterator (iterator_t*, const get_data_t*);
3425
3426int
3427vuln_iterator_results (iterator_t*);
3428
3429time_t
3430vuln_iterator_oldest (iterator_t*);
3431
3432time_t
3433vuln_iterator_newest (iterator_t*);
3434
3435const char*
3436vuln_iterator_type (iterator_t*);
3437
3438int
3439vuln_iterator_hosts (iterator_t*);
3440
3441double
3442vuln_iterator_severity (iterator_t*);
3443
3444int
3445vuln_iterator_qod (iterator_t*);
3446
3447int
3448vuln_count (const get_data_t*);
3449
3450void
3451manage_get_ldap_info (int *, gchar **, gchar **, int *, gchar **);
3452
3453void
3454manage_set_ldap_info (int, gchar *, gchar *, int, gchar *);
3455
3456void
3457manage_get_radius_info (int *, char **, char **);
3458
3459void
3460manage_set_radius_info (int, gchar *, gchar *);
3461
3462
3463/* Tags */
3464
3465char*
3466tag_uuid (target_t);
3467
3468int
3469copy_tag (const char*, const char*, const char*, tag_t*);
3470
3471int
3472create_tag (const char *, const char *, const char *, const char *,
3473 array_t *, const char *, const char *, tag_t *, gchar **);
3474
3475int
3476delete_tag (const char *, int);
3477
3478int
3479modify_tag (const char *, const char *, const char *, const char *,
3480 const char *, array_t *, const char *, const char *, const char*,
3481 gchar **);
3482
3483int
3484init_tag_iterator (iterator_t*, const get_data_t*);
3485
3486int
3487tag_count (const get_data_t *get);
3488
3489const char*
3490tag_iterator_resource_type (iterator_t*);
3491
3492int
3493tag_iterator_active (iterator_t*);
3494
3495const char*
3496tag_iterator_value (iterator_t*);
3497
3498int
3499tag_iterator_resources (iterator_t*);
3500
3502tag_resource_iterator_id (iterator_t*);
3503
3504const char*
3505tag_resource_iterator_uuid (iterator_t*);
3506
3507int
3508tag_resource_iterator_location (iterator_t*);
3509
3510const char*
3511tag_resource_iterator_name (iterator_t*);
3512
3513int
3514tag_resource_iterator_readable (iterator_t*);
3515
3516int
3517init_tag_name_iterator (iterator_t*, const get_data_t*);
3518
3519const char*
3520tag_name_iterator_name (iterator_t*);
3521
3522int
3523init_resource_tag_iterator (iterator_t*, const char*, resource_t, int,
3524 const char*, int);
3525
3526const char*
3527resource_tag_iterator_uuid (iterator_t*);
3528
3529const char*
3530resource_tag_iterator_name (iterator_t*);
3531
3532const char*
3533resource_tag_iterator_value (iterator_t*);
3534
3535const char*
3536resource_tag_iterator_comment (iterator_t*);
3537
3538int
3539resource_tag_exists (const char*, resource_t, int);
3540
3541int
3542resource_tag_count (const char*, resource_t, int);
3543
3544int
3545tag_in_use (tag_t);
3546
3547int
3548trash_tag_in_use (tag_t);
3549
3550int
3551tag_writable (tag_t);
3552
3553int
3554trash_tag_writable (tag_t);
3555
3556
3557/* Resource aggregates */
3558
3562typedef struct {
3563 gchar *field;
3564 gchar *stat;
3565 int order;
3566} sort_data_t;
3567
3568void
3570
3571int
3572init_aggregate_iterator (iterator_t*, const char *, const get_data_t *, int,
3573 GArray *, const char *, const char*, GArray*, GArray*,
3574 int, int, const char *, const char *);
3575
3576int
3577aggregate_iterator_count (iterator_t*);
3578
3579double
3580aggregate_iterator_min (iterator_t*, int);
3581
3582double
3583aggregate_iterator_max (iterator_t*, int);
3584
3585double
3586aggregate_iterator_mean (iterator_t*, int);
3587
3588double
3589aggregate_iterator_sum (iterator_t*, int);
3590
3591const char*
3592aggregate_iterator_text (iterator_t*, int, int);
3593
3594const char*
3595aggregate_iterator_value (iterator_t*);
3596
3597const char*
3598aggregate_iterator_subgroup_value (iterator_t*);
3599
3600
3601/* Feeds. */
3602
3603#define NVT_FEED 1
3604#define SCAP_FEED 2
3605#define CERT_FEED 3
3606#define GVMD_DATA_FEED 4
3607
3608gboolean
3609manage_gvmd_data_feed_dir_exists (const char *);
3610
3611gboolean
3613
3614const gchar *
3616
3617void
3618set_broker_address (const char *);
3619
3620const gchar *
3622
3623void
3624set_feed_lock_path (const char *);
3625
3626int
3628
3629void
3631
3632void
3633write_sync_start (int);
3634
3635int
3637
3638int
3640
3641int
3643
3644int
3646
3647gboolean
3648gvm_sync_script_perform_selftest (const gchar *, gchar **);
3649
3650gboolean
3651gvm_get_sync_script_identification (const gchar *, gchar **, int);
3652
3653gboolean
3654gvm_get_sync_script_description (const gchar *, gchar **);
3655
3656gboolean
3657gvm_get_sync_script_feed_version (const gchar *, gchar **);
3658
3659int
3660nvts_feed_info (gchar **, gchar **, gchar **, gchar **);
3661
3662int
3663nvts_check_feed (int *, int *, gchar **);
3664
3665int
3666manage_update_nvts_osp (const gchar *);
3667
3668int
3669manage_rebuild (GSList *, const db_conn_info_t *);
3670
3671int
3672manage_dump_vt_verification (GSList *, const db_conn_info_t *);
3673
3674
3675/* Wizards. */
3676
3677int
3678manage_run_wizard (const gchar *, int (*) (void*, gchar*, gchar**),
3679 void *, array_t *, int, const char*,
3680 gchar **, gchar **, gchar **);
3681
3682
3683/* Helpers. */
3684
3685gchar *
3686xml_escape_text_truncated (const char *, size_t, const char *);
3687
3688int
3689column_is_timestamp (const char*);
3690
3691char*
3692type_columns (const char *);
3693
3694char*
3695type_trash_columns (const char *);
3696
3697gboolean
3698manage_migrate_needs_timezone (GSList *, const db_conn_info_t *);
3699
3700
3701/* Optimize. */
3702
3703int
3704manage_optimize (GSList *, const db_conn_info_t *, const gchar *);
3705
3706
3707/* Signal management */
3708
3709int
3710sql_cancel ();
3711
3712
3713/* General settings */
3714const char *
3715get_vt_verification_collation ();
3716
3717void
3718set_vt_verification_collation (const char *);
3719
3720#endif /* not _GVMD_MANAGE_H */
static int fork_update_nvt_cache()
Update the NVT cache in a child process.
Definition: gvmd.c:1186
Headers for Iterators.
long long int resource_t
A resource, like a task or target.
Definition: iterator.h:39
gchar * truncate_certificate(const gchar *certificate)
Truncate a certificate, removing extra data.
Definition: manage.c:212
gchar * event_description(event_t event, const void *event_data, const char *task_name)
Get a description of an alert event.
Definition: manage.c:1359
const char * credential_full_type(const char *abbreviation)
Get the written-out name of an LSC Credential type.
Definition: manage.c:3811
int feed_lockfile_lock(lockfile_t *lockfile)
Acquires the feed lock and writes the current time to the lockfile.
Definition: manage.c:6119
gchar * certificate_iso_time(time_t time)
Converts a certificate time to an ISO time string.
Definition: manage.c:556
void alert_report_data_reset(alert_report_data_t *data)
Frees content of an alert_report_data_t, but not the struct itself.
Definition: manage.c:1237
const char * report_type_iterator_name(report_type_iterator_t *iterator)
Return the name from a report type iterator.
Definition: manage.c:4165
void cleanup_report_type_iterator(report_type_iterator_t *iterator)
Cleanup a report type iterator.
Definition: manage.c:4135
int init_system_report_type_iterator(report_type_iterator_t *iterator, const char *type, const char *slave_id)
Initialise a system report type iterator.
Definition: manage.c:4110
void sort_data_free(sort_data_t *sort_data)
Free a sort_data_t struct and its related resources.
Definition: manage.c:5976
const char * alert_condition_name(alert_condition_t condition)
Get the name of an alert condition.
Definition: manage.c:1258
int manage_schedule(manage_connection_forker_t fork_connection, gboolean run_tasks, sigset_t *sigmask_current)
Schedule any actions that are due.
Definition: manage.c:5097
int manage_system_report(const char *name, const char *duration, const char *start_time, const char *end_time, const char *slave_id, char **report)
Get a system report.
Definition: manage.c:4302
const char * alert_method_name(alert_method_t method)
Get the name of an alert method.
Definition: manage.c:1400
double severity_data_value(int index)
Convert an index in the counts array to a severity value.
Definition: manage.c:1042
void set_relay_mapper_path(const char *new_path)
Gets the current path of the relay mapper executable.
Definition: manage.c:3170
int feed_lockfile_lock_timeout(lockfile_t *lockfile)
Acquires the feed lock and writes the current time to the lockfile.
Definition: manage.c:6144
const gchar * get_broker_address()
Get the publish-subscribe messaging (MQTT) broker address.
Definition: manage.c:6006
const gchar * get_feed_lock_path()
Get the feed lock file path.
Definition: manage.c:6032
gchar * truncate_private_key(const gchar *private_key)
Truncate a private key, removing extra data.
Definition: manage.c:277
void set_feed_lock_timeout(int new_timeout)
Set the feed lock timeout.
Definition: manage.c:6069
task_t current_scanner_task
The task currently running on the scanner.
Definition: manage.c:1206
int stop_task(const char *task_id)
Initiate stopping a task.
Definition: manage.c:3615
int get_relay_migrate_sensors()
Gets whether to migrate sensors if relays do not match.
Definition: manage.c:3182
int manage_update_nvts_osp(const gchar *update_socket)
Update NVT cache using OSP.
Definition: manage.c:6692
int move_task(const char *task_id, const char *slave_id)
Reassign a task to another slave.
Definition: manage.c:3691
gchar * get_nvt_xml(iterator_t *nvts, int details, int pref_count, int preferences, const char *timeout, config_t config, int close_tag)
Create and return XML description for an NVT.
Definition: manage.c:5501
gchar * xml_escape_text_truncated(const char *string, size_t max_len, const char *suffix)
XML escapes text truncating to a maximum length with a suffix.
Definition: manage.c:669
const char * report_type_iterator_title(report_type_iterator_t *iterator)
Return the title from a report type iterator.
Definition: manage.c:4178
int scanner_type_valid(scanner_type_t scanner_type)
Check if a scanner type is valid.
Definition: manage.c:803
int type_is_scap(const char *type)
Check if a type is a SCAP type.
Definition: manage.c:755
int slave_get_relay(const char *original_host, int original_port, const char *original_ca_cert, const char *protocol, gchar **new_host, int *new_port, gchar **new_ca_cert)
Gets a relay hostname and port for a sensor scanner.
Definition: manage.c:3343
int start_task(const char *task_id, char **report_id)
Start a task.
Definition: manage.c:3504
void severity_data_add(severity_data_t *severity_data, double severity)
Add a severity occurrence to the counts of a severity_data_t.
Definition: manage.c:1091
void alert_report_data_free(alert_report_data_t *data)
Frees a alert_report_data_t struct, including contained data.
Definition: manage.c:1222
const char * manage_scap_update_time()
GET SCAP update time, as a string.
Definition: manage.c:5809
int resume_task(const char *task_id, char **report_id)
Resume a task.
Definition: manage.c:3657
int get_feed_lock_timeout()
Get the feed lock timeout.
Definition: manage.c:6058
event_t event_from_name(const char *name)
Get an event from a name.
Definition: manage.c:1451
const char * run_status_name(task_status_t status)
Get the name of a run status.
Definition: manage.c:1516
report_t global_current_report
The report of the current task.
Definition: manage.c:1211
alert_method_t alert_method_from_name(const char *name)
Get an alert method from a name.
Definition: manage.c:1476
void set_relay_migrate_sensors(int new_value)
Sets whether to migrate sensors if relays do not match.
Definition: manage.c:3193
gboolean next_report_type(report_type_iterator_t *iterator)
Increment a report type iterator.
Definition: manage.c:4150
const gchar * certificate_time_status(time_t activates, time_t expires)
Tests the activation and expiration time of a certificate.
Definition: manage.c:575
int severity_in_level(double severity, const char *level)
Check whether a severity falls within a threat level.
Definition: manage.c:850
int get_schedule_timeout()
Get the current schedule timeout.
Definition: manage.c:5276
void set_scheduled_user_uuid(const gchar *user_uuid)
Set UUID of user that scheduled the current task. The previous value is freed and a copy of the UUID ...
Definition: manage.c:4485
void manage_auth_allow_all(int scheduled)
Ensure that any subsequent authentications succeed.
Definition: manage.c:4462
alert_condition_t alert_condition_from_name(const char *name)
Get an alert condition from a name.
Definition: manage.c:1428
credentials_t current_credentials
Current credentials during any GMP command.
Definition: manage.c:934
int get_scanner_connection_retry()
Get the number of retries on a scanner connection lost.
Definition: manage.c:2824
gboolean gvm_get_sync_script_identification(const gchar *sync_script, gchar **identification, int feed_type)
Retrieves the ID string of a feed sync script, with basic validation.
Definition: manage.c:6291
gboolean gvm_get_sync_script_description(const gchar *sync_script, gchar **description)
Retrieves description of a feed sync script, with basic validation.
Definition: manage.c:6386
gchar * alert_condition_description(alert_condition_t condition, alert_t alert)
Get a description of an alert condition.
Definition: manage.c:1308
const char * event_name(event_t event)
Get the name of an alert event.
Definition: manage.c:1285
int feed_lockfile_unlock(lockfile_t *lockfile)
Releases the feed lock and clears the contents.
Definition: manage.c:6186
void set_feed_lock_path(const char *new_path)
Set the feed lock file path.
Definition: manage.c:6043
gboolean relay_supports_scanner_type(const char *original_host, int original_port, scanner_type_t type)
Gets whether there is a relay supporting the scanner type.
Definition: manage.c:3298
int nvts_feed_info(gchar **vts_version, gchar **feed_name, gchar **feed_vendor, gchar **feed_home)
Get VTs feed information from the scanner using VT update socket.
Definition: manage.c:6574
void cleanup_severity_data(severity_data_t *data)
Clean up a severity data structure.
Definition: manage.c:1079
const char * severity_to_level(double severity, int mode)
Get the threat level matching a severity score.
Definition: manage.c:873
void set_broker_address(const char *new_address)
Set the publish-subscribe messaging (MQTT) broker address.
Definition: manage.c:6017
const char * get_relay_mapper_path()
Gets the current path of the relay mapper executable.
Definition: manage.c:3159
int delete_resource(const char *type, const char *resource_id, int ultimate)
Delete a resource.
Definition: manage.c:7333
const gchar * get_scheduled_user_uuid()
Access UUID of user that scheduled the current task.
Definition: manage.c:4473
void set_schedule_timeout(int new_timeout)
Set the schedule timeout.
Definition: manage.c:5287
void set_scanner_connection_retry(int new_retry)
Set the number of retries on a scanner connection lost.
Definition: manage.c:2835
gboolean gvm_get_sync_script_feed_version(const gchar *sync_script, gchar **feed_version)
Retrieves the version of a feed handled by the sync, with basic validation.
Definition: manage.c:6452
int manage_run_wizard(const gchar *wizard_name, int(*run_command)(void *, gchar *, gchar **), void *run_command_data, array_t *params, int read_only, const char *mode, gchar **command_error, gchar **command_error_code, gchar **ret_response)
Run a wizard.
Definition: manage.c:6726
const char * type_name_plural(const char *type)
Return the plural name of a resource type.
Definition: manage.c:701
int nvts_check_feed(int *lockfile_in_use, int *self_test_exit_error, char **self_test_error_msg)
Check the VTs feed sync for information using the default OSP socket.
Definition: manage.c:6637
gboolean manage_gvmd_data_feed_dirs_exist()
Tests if the gvmd data feed directory and its subdirectories exist.
Definition: manage.c:5992
void init_severity_data(severity_data_t *data)
Initialize a severity data structure.
Definition: manage.c:1062
void write_sync_start(int lockfile_fd)
Write start time to sync lock file.
Definition: manage.c:6083
void manage_sync(sigset_t *sigmask_current, int(*fork_update_nvt_cache)(), gboolean try_gvmd_data_sync)
Perform any syncing that is due.
Definition: manage.c:4891
void severity_data_add_count(severity_data_t *severity_data, double severity, int count)
Add a multiple severity occurrences to the counts of a severity_data_t.
Definition: manage.c:1109
void severity_data_level_counts(const severity_data_t *severity_data, int *errors, int *false_positives, int *logs, int *lows, int *mediums, int *highs)
Count the occurrences of severities in the levels.
Definition: manage.c:1159
const char * type_name(const char *type)
Return the name of a resource type.
Definition: manage.c:728
gboolean gvm_sync_script_perform_selftest(const gchar *sync_script, gchar **result)
Request a feed synchronization script selftest.
Definition: manage.c:6219
int get_certificate_info(const gchar *certificate, gssize certificate_len, time_t *activation_time, time_t *expiration_time, gchar **md5_fingerprint, gchar **sha256_fingerprint, gchar **subject, gchar **issuer, gchar **serial, gnutls_x509_crt_fmt_t *certificate_format)
Gathers info from a certificate.
Definition: manage.c:361
get_data_t * report_results_get_data(int first, int rows, int apply_overrides, int min_qod)
Create a new basic get_data_t struct to get report results.
Definition: manage.c:996
const char * severity_to_type(double severity)
Get the message type matching a severity score.
Definition: manage.c:910
int gvm_migrate_secinfo(int feed_type)
Migrates SCAP or CERT database, waiting until migration terminates.
Definition: manage.c:6657
int manage_read_info(gchar *type, gchar *uid, gchar *name, gchar **result)
Read raw information.
Definition: manage.c:5860
int manage_rebuild_gvmd_data_from_feed(const char *types, GSList *log_config, const db_conn_info_t *database, gchar **error_msg)
Rebuild configs, port lists and report formats from feed.
Definition: manage.c:4975
static PGconn * conn
Handle on the database.
Definition: sql_pg.c:84
Data about a report sent by an alert.
Definition: manage.h:394
gchar * content_type
The MIME content type of the report.
Definition: manage.h:397
gchar * remote_filename
Path or filename to send to / as.
Definition: manage.h:396
gchar * report_format_name
Name of the report format used.
Definition: manage.h:398
gchar * local_filename
Path to the local report file.
Definition: manage.h:395
A command.
Definition: manage.h:151
gchar * summary
Summary of command.
Definition: manage.h:153
gchar * name
Command name.
Definition: manage.h:152
A CREATE_REPORT result.
Definition: manage.h:1189
char * description
Description of NVT.
Definition: manage.h:1190
char * qod
QoD (quality of detection).
Definition: manage.h:1196
char * port
Port.
Definition: manage.h:1195
char * host
Host.
Definition: manage.h:1191
char * qod_type
QoD type.
Definition: manage.h:1197
char * scan_nvt_version
Version of NVT used at scan time.
Definition: manage.h:1194
char * threat
Threat.
Definition: manage.h:1199
char * hostname
Hostname.
Definition: manage.h:1192
char * severity
Severity score.
Definition: manage.h:1198
char * nvt_oid
OID of NVT.
Definition: manage.h:1193
Data structure for info used to connect to the database.
Definition: manage.h:47
gchar * user
The database user name.
Definition: manage.h:51
gchar * name
The database name.
Definition: manage.h:48
gchar * port
The database port or socket file extension.
Definition: manage.h:50
gchar * host
The database host or socket directory.
Definition: manage.h:49
A detection detail for create_report.
Definition: manage.h:1220
char * source_name
source_name of detection in result.
Definition: manage.h:1222
char * product
product of detection in result.
Definition: manage.h:1221
char * location
location of detection in result.
Definition: manage.h:1224
char * source_oid
source_oid of detection in result.
Definition: manage.h:1223
Command data for a get command.
Definition: manage_get.h:35
A host detail for create_report.
Definition: manage.h:1206
char * name
Detail name.
Definition: manage.h:1208
char * source_type
Source type.
Definition: manage.h:1211
char * source_name
Source name.
Definition: manage.h:1210
char * ip
IP.
Definition: manage.h:1207
char * value
Detail value.
Definition: manage.h:1212
char * source_desc
Source description.
Definition: manage.h:1209
A generic SQL iterator structure.
Definition: iterator.h:50
Keyword.
Definition: manage.h:2983
gchar * column
The column prefix, or NULL.
Definition: manage.h:2984
keyword_relation_t relation
The relation.
Definition: manage.h:2992
gchar * string
The keyword string, outer quotes removed.
Definition: manage.h:2990
int integer_value
Integer value of the keyword.
Definition: manage.h:2987
keyword_type_t type
Type of keyword.
Definition: manage.h:2991
double double_value
Floating point value of the keyword.
Definition: manage.h:2988
int equal
Whether the keyword is like "=example".
Definition: manage.h:2986
int quoted
Whether the keyword was quoted.
Definition: manage.h:2989
int approx
Whether the keyword is like "~example".
Definition: manage.h:2985
Lockfile.
Definition: utils.h:62
Name value pair.
Definition: manage.h:114
gchar * name
Name.
Definition: manage.h:115
gchar * value
Param value.
Definition: manage.h:116
A system report type iterator.
Definition: manage.h:2438
gchar ** start
First type.
Definition: manage.h:2439
gchar ** current
Current type.
Definition: manage.h:2440
Severity data for result count cache.
Definition: manage.h:1010
int * counts
Counts.
Definition: manage.h:1011
int total
Total.
Definition: manage.h:1012
double max
Max.
Definition: manage.h:1013
Sort data for aggregates commands.
Definition: manage.h:3562
int order
The sort order.
Definition: manage.h:3565
gchar * field
The field to sort by.
Definition: manage.h:3563
gchar * stat
The statistic to sort by.
Definition: manage.h:3564
Headers for Greenbone Vulnerability Manager: General utilities.