Greenbone Vulnerability Management Libraries 22.8.0
prefs.c File Reference

Implementation of API to handle globally stored preferences. More...

#include "prefs.h"
#include "settings.h"
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for prefs.c:

Go to the source code of this file.

Macros

#define G_LOG_DOMAIN   "libgvm base"
 GLib log domain.
 

Functions

void prefs_set (const gchar *key, const gchar *value)
 Set a string preference value via a key.
 
static void prefs_init (void)
 Initializes the preferences structure. If it was already initialized, remove old settings and start from scratch.
 
GHashTable * preferences_get (void)
 Get the pointer to the global preferences structure. Eventually this function should not be used anywhere.
 
const gchar * prefs_get (const gchar *key)
 Get a string preference value via a key.
 
int prefs_get_bool (const gchar *key)
 Get a boolean expression of a preference value via a key.
 
void prefs_config (const char *config)
 Apply the configs from given file as preferences.
 
void prefs_dump (void)
 Dump the preferences to stdout.
 

Variables

static GHashTable * global_prefs = NULL
 

Detailed Description

Implementation of API to handle globally stored preferences.

A global store of preferences to scanner and NVTs is handled by this module.

Definition in file prefs.c.

Macro Definition Documentation

◆ G_LOG_DOMAIN

#define G_LOG_DOMAIN   "libgvm base"

GLib log domain.

Definition at line 27 of file prefs.c.

Function Documentation

◆ preferences_get()

GHashTable * preferences_get ( void  )

Get the pointer to the global preferences structure. Eventually this function should not be used anywhere.

Returns
Pointer to the global preferences structure.

Definition at line 81 of file prefs.c.

82{
83 if (!global_prefs)
84 prefs_init ();
85
86 return global_prefs;
87}
static void prefs_init(void)
Initializes the preferences structure. If it was already initialized, remove old settings and start f...
Definition: prefs.c:40
static GHashTable * global_prefs
Definition: prefs.c:29

References global_prefs, and prefs_init().

Here is the call graph for this function:

◆ prefs_config()

void prefs_config ( const char *  config)

Apply the configs from given file as preferences.

Parameters
configFilename of the configuration file.

Definition at line 156 of file prefs.c.

157{
158 settings_iterator_t settings;
159
160 if (!global_prefs)
161 prefs_init ();
162
163 if (!init_settings_iterator_from_file (&settings, config, "Misc"))
164 {
165 while (settings_iterator_next (&settings))
167 settings_iterator_value (&settings));
168
169 cleanup_settings_iterator (&settings);
170 }
171
172 prefs_set ("config_file", config);
173}
void prefs_set(const gchar *, const gchar *)
Set a string preference value via a key.
Definition: prefs.c:142
gboolean settings_iterator_next(settings_iterator_t *iterator)
Increment an iterator.
Definition: settings.c:150
const gchar * settings_iterator_value(settings_iterator_t *iterator)
Get the value from a settings iterator.
Definition: settings.c:179
void cleanup_settings_iterator(settings_iterator_t *iterator)
Cleanup a settings iterator.
Definition: settings.c:136
int init_settings_iterator_from_file(settings_iterator_t *iterator, const gchar *filename, const gchar *group)
Initialise a settings iterator from a file.
Definition: settings.c:98
const gchar * settings_iterator_name(settings_iterator_t *iterator)
Get the name from a settings iterator.
Definition: settings.c:166
Struct holding options to iterate over a GKeyFile.
Definition: settings.h:36

References cleanup_settings_iterator(), global_prefs, init_settings_iterator_from_file(), prefs_init(), prefs_set(), settings_iterator_name(), settings_iterator_next(), and settings_iterator_value().

Here is the call graph for this function:

◆ prefs_dump()

void prefs_dump ( void  )

Dump the preferences to stdout.

Definition at line 179 of file prefs.c.

180{
181 void *name, *value;
182 GHashTableIter iter;
183
184 if (global_prefs)
185 {
186 g_hash_table_iter_init (&iter, global_prefs);
187 while (g_hash_table_iter_next (&iter, &name, &value))
188 {
189 printf ("%s = %s\n", (char *) name, (char *) value);
190 }
191 }
192}

References global_prefs.

◆ prefs_get()

const gchar * prefs_get ( const gchar *  key)

Get a string preference value via a key.

Parameters
keyThe identifier for the preference.
Returns
A pointer to a string with the value for the preference. NULL in case for the key no preference was found or the preference is not of type string.

Definition at line 99 of file prefs.c.

100{
101 if (!global_prefs)
102 prefs_init ();
103
104 return g_hash_table_lookup (global_prefs, key);
105}

References global_prefs, and prefs_init().

Here is the call graph for this function:

◆ prefs_get_bool()

int prefs_get_bool ( const gchar *  key)

Get a boolean expression of a preference value via a key.

Parameters
keyThe identifier for the preference.
Returns
1 if the value is considered to represent "true" and 0 if the value is considered to represent "false". If the preference is of type string, value "yes" is true, anything else is false. Any other type or non-existing key is false.

Definition at line 119 of file prefs.c.

120{
121 gchar *str;
122
123 if (!global_prefs)
124 prefs_init ();
125
126 str = g_hash_table_lookup (global_prefs, key);
127 if (str && !strcmp (str, "yes"))
128 return 1;
129
130 return 0;
131}

References global_prefs, and prefs_init().

Here is the call graph for this function:

◆ prefs_init()

static void prefs_init ( void  )
static

Initializes the preferences structure. If it was already initialized, remove old settings and start from scratch.

Definition at line 40 of file prefs.c.

41{
42 if (global_prefs)
43 g_hash_table_destroy (global_prefs);
44
46 g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
47 prefs_set ("cgi_path", "/cgi-bin:/scripts");
48 prefs_set ("checks_read_timeout", "5");
49 prefs_set ("unscanned_closed", "yes");
50 prefs_set ("unscanned_closed_udp", "yes");
51 prefs_set ("timeout_retry", "3");
52 prefs_set ("expand_vhosts", "yes");
53 prefs_set ("test_empty_vhost", "no");
54 prefs_set ("open_sock_max_attempts", "5");
55 prefs_set ("time_between_request", "0");
56 prefs_set ("nasl_no_signature_check", "yes");
57 prefs_set ("max_hosts", "30");
58 prefs_set ("max_checks", "10");
59 prefs_set ("log_whole_attack", "no");
60 prefs_set ("log_plugins_name_at_load", "no");
61 prefs_set ("optimize_test", "yes");
62 prefs_set ("non_simult_ports", "139, 445, 3389, Services/irc");
63 prefs_set ("safe_checks", "yes");
64 prefs_set ("auto_enable_dependencies", "yes");
65 prefs_set ("drop_privileges", "no");
66 prefs_set ("report_host_details", "yes");
67 prefs_set ("vendor_version", "\0");
68 prefs_set ("test_alive_hosts_only", "yes");
69 prefs_set ("test_alive_wait_timeout", "3");
70 prefs_set ("debug_tls", "0");
71 prefs_set ("allow_simultaneous_ips", "yes");
72}

References global_prefs, and prefs_set().

Referenced by preferences_get(), prefs_config(), prefs_get(), prefs_get_bool(), and prefs_set().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prefs_set()

void prefs_set ( const gchar *  key,
const gchar *  value 
)

Set a string preference value via a key.

Parameters
keyThe identifier for the preference. A copy of this will be created if necessary.
valueThe value to set. A copy of this will be created.

Definition at line 142 of file prefs.c.

143{
144 if (!global_prefs)
145 prefs_init ();
146
147 g_hash_table_insert (global_prefs, g_strdup (key), g_strdup (value));
148}

References global_prefs, and prefs_init().

Referenced by prefs_config(), and prefs_init().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ global_prefs

GHashTable* global_prefs = NULL
static