[Openvas-commits] r7878 - in trunk/openvas-manager: . src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Jun 1 15:32:24 CEST 2010
Author: mattm
Date: 2010-06-01 15:32:22 +0200 (Tue, 01 Jun 2010)
New Revision: 7878
Modified:
trunk/openvas-manager/ChangeLog
trunk/openvas-manager/src/omp.c
Log:
Switch GET_AGENTS to the new callback data mechanism.
* src/omp.c (get_agents_data_t): New type.
(get_agents_data_reset): New function.
(command_data_t): Add get_agents.
(get_agents_data): New variable.
(omp_xml_handle_start_element, omp_xml_handle_end_element): Make
GET_AGENTS cases use command_data.
Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog 2010-06-01 13:13:07 UTC (rev 7877)
+++ trunk/openvas-manager/ChangeLog 2010-06-01 13:32:22 UTC (rev 7878)
@@ -1,5 +1,16 @@
2010-06-01 Matthew Mundell <matthew.mundell at greenbone.net>
+ Switch GET_AGENTS to the new callback data mechanism.
+
+ * src/omp.c (get_agents_data_t): New type.
+ (get_agents_data_reset): New function.
+ (command_data_t): Add get_agents.
+ (get_agents_data): New variable.
+ (omp_xml_handle_start_element, omp_xml_handle_end_element): Make
+ GET_AGENTS cases use command_data.
+
+2010-06-01 Matthew Mundell <matthew.mundell at greenbone.net>
+
* src/omp.c (print_report_xml, omp_xml_handle_end_element): Initialize
result_hosts always, to quiet a compiler warning.
Modified: trunk/openvas-manager/src/omp.c
===================================================================
--- trunk/openvas-manager/src/omp.c 2010-06-01 13:13:07 UTC (rev 7877)
+++ trunk/openvas-manager/src/omp.c 2010-06-01 13:32:22 UTC (rev 7878)
@@ -919,6 +919,23 @@
typedef struct
{
+ char *format;
+ char *name;
+ char *sort_field;
+ int sort_order;
+} get_agents_data_t;
+
+static void
+get_agents_data_reset (get_agents_data_t *data)
+{
+ free (data->format);
+ free (data->name);
+ free (data->sort_field);
+ memset (data, 0, sizeof (get_agents_data_t));
+}
+
+typedef struct
+{
char *note_id;
char *nvt_oid;
char *task_id;
@@ -1217,6 +1234,7 @@
delete_schedule_data_t delete_schedule;
delete_target_data_t delete_target;
delete_task_data_t delete_task;
+ get_agents_data_t get_agents;
get_notes_data_t get_notes;
get_preferences_data_t get_preferences;
get_report_data_t get_report;
@@ -1360,6 +1378,12 @@
= (delete_task_data_t*) &(command_data.delete_task);
/**
+ * @brief Parser callback data for GET_AGENTS.
+ */
+get_agents_data_t *get_agents_data
+ = &(command_data.get_agents);
+
+/**
* @brief Parser callback data for GET_NOTES.
*/
get_notes_data_t *get_notes_data
@@ -2301,18 +2325,18 @@
const gchar* attribute;
if (find_attribute (attribute_names, attribute_values,
"name", &attribute))
- openvas_append_string (¤t_uuid, attribute);
+ openvas_append_string (&get_agents_data->name, attribute);
if (find_attribute (attribute_names, attribute_values,
"format", &attribute))
- openvas_append_string (¤t_format, attribute);
+ openvas_append_string (&get_agents_data->format, attribute);
if (find_attribute (attribute_names, attribute_values,
"sort_field", &attribute))
- openvas_append_string (¤t_name, attribute);
+ openvas_append_string (&get_agents_data->sort_field, attribute);
if (find_attribute (attribute_names, attribute_values,
"sort_order", &attribute))
- current_int_2 = strcmp (attribute, "descending");
+ get_agents_data->sort_order = strcmp (attribute, "descending");
else
- current_int_2 = 1;
+ get_agents_data->sort_order = 1;
set_client_state (CLIENT_GET_AGENTS);
}
else if (strcasecmp ("GET_CERTIFICATES", element_name) == 0)
@@ -11294,22 +11318,24 @@
assert (strcasecmp ("GET_AGENTS", element_name) == 0);
- if (current_format)
+ if (get_agents_data->format)
{
- if (strlen (current_format))
+ if (strlen (get_agents_data->format))
{
- if (strcasecmp (current_format, "installer") == 0)
+ if (strcasecmp (get_agents_data->format, "installer") == 0)
format = 1;
- else if (strcasecmp (current_format, "howto_install") == 0)
+ else if (strcasecmp (get_agents_data->format,
+ "howto_install")
+ == 0)
format = 2;
- else if (strcasecmp (current_format, "howto_use") == 0)
+ else if (strcasecmp (get_agents_data->format, "howto_use")
+ == 0)
format = 3;
else
format = -1;
}
else
format = 0;
- openvas_free_string_var (¤t_format);
}
else
format = 0;
@@ -11318,13 +11344,14 @@
(XML_ERROR_SYNTAX ("get_agents",
"GET_AGENTS format attribute should"
" be \"installer\", \"howto_install\" or \"howto_use\"."));
- else if (current_uuid && find_agent (current_uuid, &agent))
+ else if (get_agents_data->name
+ && find_agent (get_agents_data->name, &agent))
SEND_TO_CLIENT_OR_FAIL (XML_INTERNAL_ERROR ("get_agents"));
- else if (current_uuid && agent == 0)
+ else if (get_agents_data->name && agent == 0)
{
if (send_find_error_to_client ("get_agents",
"agent",
- current_uuid))
+ get_agents_data->name))
{
error_send_to_client (error);
return;
@@ -11337,10 +11364,8 @@
" status_text=\"" STATUS_OK_TEXT "\">");
init_agent_iterator (&targets,
agent,
- /* Attribute sort_order. */
- current_int_2,
- /* Attribute sort_field. */
- current_name);
+ get_agents_data->sort_order,
+ get_agents_data->sort_field);
while (next (&targets))
{
switch (format)
@@ -11396,7 +11421,7 @@
cleanup_iterator (&targets);
SEND_TO_CLIENT_OR_FAIL ("</get_agents_response>");
}
- openvas_free_string_var (¤t_name);
+ get_agents_data_reset (get_agents_data);
set_client_state (CLIENT_AUTHENTIC);
break;
}
More information about the Openvas-commits
mailing list