26 #include "../misc/network.h"
27 #include "../misc/plugutils.h"
28 #include "../nasl/nasl.h"
36 #include <gvm/base/drop_privileges.h>
37 #include <gvm/base/networking.h>
38 #include <gvm/base/prefs.h>
39 #include <gvm/base/proctitle.h>
40 #include <gvm/util/nvticache.h>
44 #include <sys/types.h>
52 #define G_LOG_DOMAIN "sd main"
70 g_warning (
"%s: Missing OID", filename);
73 else if (!nvti_name (nvt))
75 g_warning (
"%s: Missing name", filename);
78 else if (!nvti_family (nvt))
80 g_warning (
"%s: Missing family", filename);
101 char fullname[PATH_MAX + 1];
105 snprintf (fullname,
sizeof (fullname),
"%s/%s", folder, filename);
107 if (prefs_get_bool (
"nasl_no_signature_check"))
112 if (!nvticache_check (filename))
117 struct utimbuf updated_timestamp;
120 args->key = nvticache_get_kb ();
121 new_nvti = nvti_new ();
122 args->nvti = new_nvti;
123 args->name = fullname;
126 g_debug (
"%s: Could not be loaded", fullname);
132 now = time (NULL) - 1;
133 updated_timestamp.actime = now;
134 updated_timestamp.modtime = now;
135 utime (fullname, &updated_timestamp);
138 nvticache_add (new_nvti, filename);
139 nvti_free (new_nvti);
152 GSList *vhosts, kb_t kb,
const char *
oid)
157 memset (&infos,
'\0',
sizeof (infos));
163 infos.
name = nvticache_get_src (
oid);
173 char ip_str[INET6_ADDRSTRLEN];
176 GError *error = NULL;
184 addr6_to_str (args->
ip, ip_str);
185 proctitle_set (
"openvas: testing %s (%s)", ip_str, args->
name);
187 if (prefs_get_bool (
"nasl_no_signature_check"))
190 if (prefs_get_bool (
"drop_privileges"))
192 int drop_priv_res = drop_privileges (NULL, &error);
193 if (drop_priv_res != GVM_DROP_PRIVILEGES_OK)
195 if (drop_priv_res != GVM_DROP_PRIVILEGES_FAIL_NOT_ROOT)
196 g_debug (
"Failed to drop privileges for %s", args->
name);
197 g_error_free (error);
202 g_debug (
"exec_nasl_script: %s error", args->
name);