[Openvas-commits] r6617 - in trunk/openvas-manager: . src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Feb 2 19:30:06 CET 2010
Author: mattm
Date: 2010-02-02 19:30:03 +0100 (Tue, 02 Feb 2010)
New Revision: 6617
Modified:
trunk/openvas-manager/ChangeLog
trunk/openvas-manager/src/manage.c
trunk/openvas-manager/src/manage.h
trunk/openvas-manager/src/omp.c
trunk/openvas-manager/src/tasks_sql.h
Log:
* src/tasks_sql.h (set_target_hosts, target_hosts)
(target_lsc_credential, set_target_hosts): Take target_t instead of name.
(task_target): Return target_t instead of name.
(make_task_rcfile): Work with target_t instead of name.
(target_name): New function.
* src/manage.h: Update headers accordingly.
* src/manage.c (start_task): Work with target_t instead of name.
* src/omp.c (omp_xml_handle_end_element): In CLIENT_CREATE_TASK and
CLIENT_GET_STATUS work with target_t instead of target name.
Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog 2010-02-02 17:27:15 UTC (rev 6616)
+++ trunk/openvas-manager/ChangeLog 2010-02-02 18:30:03 UTC (rev 6617)
@@ -1,5 +1,20 @@
2010-02-02 Matthew Mundell <matthew.mundell at intevation.de>
+ * src/tasks_sql.h (set_target_hosts, target_hosts)
+ (target_lsc_credential, set_target_hosts): Take target_t instead of name.
+ (task_target): Return target_t instead of name.
+ (make_task_rcfile): Work with target_t instead of name.
+ (target_name): New function.
+
+ * src/manage.h: Update headers accordingly.
+
+ * src/manage.c (start_task): Work with target_t instead of name.
+
+ * src/omp.c (omp_xml_handle_end_element): In CLIENT_CREATE_TASK and
+ CLIENT_GET_STATUS work with target_t instead of target name.
+
+2010-02-02 Matthew Mundell <matthew.mundell at intevation.de>
+
* src/tasks_sql.h (serve_omp): Convert scanner input to UTF-8 before
logging.
Modified: trunk/openvas-manager/src/manage.c
===================================================================
--- trunk/openvas-manager/src/manage.c 2010-02-02 17:27:15 UTC (rev 6616)
+++ trunk/openvas-manager/src/manage.c 2010-02-02 18:30:03 UTC (rev 6617)
@@ -902,7 +902,8 @@
int
start_task (task_t task, char **report_id)
{
- char *hosts, *target, *config;
+ target_t target;
+ char *hosts, *config;
gchar *plugins;
int fail, pid;
GSList *files = NULL;
@@ -937,9 +938,9 @@
}
target = task_target (task);
- if (target == NULL)
+ if (target == 0)
{
- tracef (" task target is NULL.\n");
+ tracef (" task target is 0.\n");
set_task_run_status (task, run_status);
return -2;
}
@@ -947,14 +948,12 @@
hosts = target_hosts (target);
if (hosts == NULL)
{
- free (target);
tracef (" target hosts is NULL.\n");
set_task_run_status (task, run_status);
return -4;
}
credential = target_lsc_credential (target);
- free (target);
/* Create the report. */
Modified: trunk/openvas-manager/src/manage.h
===================================================================
--- trunk/openvas-manager/src/manage.h 2010-02-02 17:27:15 UTC (rev 6616)
+++ trunk/openvas-manager/src/manage.h 2010-02-02 18:30:03 UTC (rev 6617)
@@ -376,7 +376,7 @@
void
set_task_config (task_t, const char*);
-char*
+target_t
task_target (task_t);
void
@@ -727,8 +727,11 @@
target_iterator_lsc_credential (iterator_t*);
char*
-target_hosts (const char*);
+target_name (target_t);
+char*
+target_hosts (target_t);
+
int
target_in_use (target_t);
Modified: trunk/openvas-manager/src/omp.c
===================================================================
--- trunk/openvas-manager/src/omp.c 2010-02-02 17:27:15 UTC (rev 6616)
+++ trunk/openvas-manager/src/omp.c 2010-02-02 18:30:03 UTC (rev 6617)
@@ -6920,7 +6920,8 @@
{
gchar* msg;
config_t config;
- char *tsk_uuid, *name, *description, *target;
+ target_t target;
+ char *tsk_uuid, *name, *description;
assert (strcasecmp ("CREATE_TASK", element_name) == 0);
assert (current_client_task != (task_t) 0);
@@ -6953,15 +6954,13 @@
description = task_description (current_client_task);
config = task_config (current_client_task);
- /** @todo Hence task_target_name? */
target = task_target (current_client_task);
if ((description && (config || target))
|| (description == NULL
- && (config == 0 || target == NULL)))
+ && (config == 0 || target == 0)))
{
request_delete_task (¤t_client_task);
free (tsk_uuid);
- free (target);
SEND_TO_CLIENT_OR_FAIL
(XML_ERROR_SYNTAX ("create_task",
"CREATE_TASK requires either an rcfile"
@@ -7003,7 +7002,6 @@
request_delete_task (¤t_client_task);
free (tsk_uuid);
free (description);
- free (target);
SEND_TO_CLIENT_OR_FAIL
(XML_ERROR_SYNTAX ("create_task",
"CREATE_TASK requires a name attribute"));
@@ -7078,7 +7076,6 @@
{
request_delete_task (¤t_client_task);
free (tsk_uuid);
- free (target);
SEND_TO_CLIENT_OR_FAIL
(XML_ERROR_SYNTAX ("create_task",
"CREATE_TASK target must exist"));
@@ -7090,7 +7087,6 @@
{
request_delete_task (¤t_client_task);
free (tsk_uuid);
- free (target);
SEND_TO_CLIENT_OR_FAIL
(XML_ERROR_SYNTAX ("create_task",
"CREATE_TASK config must exist"));
@@ -7105,7 +7101,6 @@
{
request_delete_task (¤t_client_task);
free (tsk_uuid);
- free (target);
SEND_TO_CLIENT_OR_FAIL
(XML_ERROR_SYNTAX ("create_task",
"Failed to generate task rcfile"));
@@ -7367,7 +7362,8 @@
{
int ret, maximum_hosts;
gchar *response, *progress_xml;
- char *name, *config, *escalator, *target, *hosts;
+ target_t target;
+ char *name, *config, *escalator, *task_target_name, *hosts;
gchar *first_report_id, *first_report;
char* description;
gchar *description64, *last_report_id, *last_report;
@@ -7590,6 +7586,7 @@
name = task_name (task);
escalator = task_escalator (task);
config = task_config_name (task);
+ task_target_name = target_name (target);
response = g_strdup_printf
("<get_status_response"
" status=\"" STATUS_OK "\""
@@ -7617,7 +7614,7 @@
name,
config ? config : "",
escalator ? escalator : "",
- target ? target : "",
+ task_target_name ? task_target_name : "",
task_run_status_name (task),
progress_xml,
description64,
@@ -7633,7 +7630,7 @@
second_last_report);
free (config);
free (escalator);
- free (target);
+ free (task_target_name);
g_free (progress_xml);
g_free (last_report);
g_free (second_last_report);
@@ -7697,7 +7694,8 @@
{
gchar *line, *progress_xml;
char *name = task_name (index);
- char *tsk_uuid, *config, *escalator, *target, *hosts;
+ target_t target;
+ char *tsk_uuid, *config, *escalator, *task_target_name, *hosts;
gchar *first_report_id, *first_report;
char *description;
gchar *description64, *last_report_id, *last_report;
@@ -7917,6 +7915,7 @@
config = task_config_name (index);
escalator = task_escalator (index);
+ task_target_name = target_name (target);
line = g_strdup_printf ("<task"
" id=\"%s\">"
"<name>%s</name>"
@@ -7942,7 +7941,7 @@
name,
config ? config : "",
escalator ? escalator : "",
- target ? target : "",
+ task_target_name ? task_target_name : "",
task_run_status_name (index),
progress_xml,
description64,
@@ -7958,7 +7957,7 @@
second_last_report);
free (config);
free (escalator);
- free (target);
+ free (task_target_name);
g_free (progress_xml);
g_free (last_report);
g_free (second_last_report);
Modified: trunk/openvas-manager/src/tasks_sql.h
===================================================================
--- trunk/openvas-manager/src/tasks_sql.h 2010-02-02 17:27:15 UTC (rev 6616)
+++ trunk/openvas-manager/src/tasks_sql.h 2010-02-02 18:30:03 UTC (rev 6617)
@@ -91,7 +91,7 @@
update_all_config_caches ();
static void
-set_target_hosts (const char *, const char *);
+set_target_hosts (target_t, const char *);
static gchar*
select_config_nvts (config_t, const char*, int, const char*);
@@ -4115,12 +4115,25 @@
*
* @return Target of task.
*/
-char*
+target_t
task_target (task_t task)
{
- return sql_string (0, 0,
- "SELECT target FROM tasks WHERE ROWID = %llu;",
- task);
+ target_t target = 0;
+ switch (sql_int64 (&target, 0, 0,
+ "SELECT ROWID FROM targets WHERE name ="
+ " (SELECT target FROM tasks WHERE ROWID = %llu);",
+ task))
+ {
+ case 0:
+ return target;
+ break;
+ case 1: /* Too few rows in result of query. */
+ default: /* Programming error. */
+ assert (0);
+ case -1:
+ return 0;
+ break;
+ }
}
/**
@@ -4431,7 +4444,8 @@
int
make_task_rcfile (task_t task)
{
- char *config, *target, *selector, *hosts, *rc;
+ target_t target;
+ char *config, *selector, *hosts, *rc;
iterator_t prefs;
GString *buffer;
@@ -4439,7 +4453,7 @@
if (config == NULL) return -1;
target = task_target (task);
- if (target == NULL)
+ if (target == 0)
{
free (config);
return -1;
@@ -4449,7 +4463,6 @@
if (selector == NULL)
{
free (config);
- free (target);
return -1;
}
@@ -4471,7 +4484,6 @@
/* Targets for general preferences. */
hosts = target_hosts (target);
- free (target);
if (hosts)
g_string_append_printf (buffer, "targets = %s\n\n", hosts);
else
@@ -5811,7 +5823,8 @@
{
config_t config;
- char *config_name, *target, *selector;
+ target_t target;
+ char *config_name, *selector;
char *quoted_config_name, *quoted_selector;
config_name = task_config_name (task);
@@ -5823,7 +5836,7 @@
}
target = task_target (task);
- if (target == NULL)
+ if (target == 0)
{
free (config_name);
g_free (rc);
@@ -5835,7 +5848,6 @@
if (selector == NULL)
{
free (config_name);
- free (target);
g_free (rc);
sql ("ROLLBACK");
return -1;
@@ -5847,7 +5859,6 @@
{
free (quoted_selector);
free (config_name);
- free (target);
g_free (rc);
sql ("ROLLBACK");
return -1;
@@ -5856,7 +5867,6 @@
{
free (quoted_selector);
free (config_name);
- free (target);
g_free (rc);
sql ("ROLLBACK");
return -1;
@@ -6536,27 +6546,34 @@
}
/**
+ * @brief Return the name of a target.
+ *
+ * @param[in] target Target.
+ *
+ * @return Newly allocated name if available, else NULL.
+ */
+char*
+target_name (target_t target)
+{
+ return sql_string (0, 0,
+ "SELECT name FROM targets WHERE ROWID = %llu;",
+ target);
+}
+
+/**
* @brief Return the hosts associated with a target.
*
- * @param[in] name Target name.
+ * @param[in] target Target.
*
- * @return Comma separated list of hosts if available, else NULL.
+ * @return Newly allocated comma separated list of hosts if available,
+ * else NULL.
*/
char*
-target_hosts (const char *name)
+target_hosts (target_t target)
{
- char* hosts;
- gchar* quoted_name = sql_nquote (name, strlen (name));
- if (user_owns ("target", quoted_name) == 0)
- {
- g_free (quoted_name);
- return NULL;
- }
- hosts = sql_string (0, 0,
- "SELECT hosts FROM targets WHERE name = '%s';",
- quoted_name);
- g_free (quoted_name);
- return hosts;
+ return sql_string (0, 0,
+ "SELECT hosts FROM targets WHERE ROWID = %llu;",
+ target);
}
/**
@@ -6567,25 +6584,15 @@
* @return Credential if any, else 0.
*/
static lsc_credential_t
-target_lsc_credential (const char *name)
+target_lsc_credential (target_t target)
{
- int ret;
lsc_credential_t lsc_credential;
- gchar *quoted_name = sql_quote (name);
- if (user_owns ("target", quoted_name) == 0)
+ switch (sql_int64 (&lsc_credential, 0, 0,
+ "SELECT lsc_credential FROM targets"
+ " WHERE ROWID = %llu;",
+ target))
{
- g_free (quoted_name);
- return 0;
- }
-
- ret = sql_int64 (&lsc_credential, 0, 0,
- "SELECT lsc_credential FROM targets"
- " WHERE name = '%s';",
- quoted_name);
- g_free (quoted_name);
- switch (ret)
- {
case 0:
break;
case 1: /* Too few rows in result of query. */
@@ -6604,18 +6611,20 @@
/**
* @brief Set the hosts associated with a target.
*
- * @param[in] name Target name.
- * @param[in] name New value for hosts.
+ * @param[in] target Target.
+ * @param[in] hosts New value for hosts.
*/
static void
-set_target_hosts (const char *name, const char *hosts)
+set_target_hosts (target_t target, const char *hosts)
{
- gchar* quoted_name = sql_quote (name);
- gchar* quoted_hosts = sql_quote (hosts);
- sql ("UPDATE targets SET hosts = '%s' WHERE name = '%s';",
- quoted_hosts, quoted_name);
+ gchar* quoted_hosts;
+
+ assert (hosts);
+
+ quoted_hosts = sql_quote (hosts);
+ sql ("UPDATE targets SET hosts = '%s' WHERE ROWID = %llu;",
+ quoted_hosts, target);
g_free (quoted_hosts);
- g_free (quoted_name);
}
/**
More information about the Openvas-commits
mailing list