[Openvas-commits] r3379 - in trunk/openvas-manager: . src src/tests
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri May 15 12:01:25 CEST 2009
Author: mattm
Date: 2009-05-15 12:01:24 +0200 (Fri, 15 May 2009)
New Revision: 3379
Modified:
trunk/openvas-manager/ChangeLog
trunk/openvas-manager/src/manage.c
trunk/openvas-manager/src/tests/new_task_small_rc
Log:
* src/tests/new_task_small_rc (CLIENTSIDE_USERRULES): Add two rules.
* src/manage.c (send_task_rules): New function.
(start_task): Move required preferences to follow task preferences.
Enable sending of task rules.
Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog 2009-05-15 08:39:06 UTC (rev 3378)
+++ trunk/openvas-manager/ChangeLog 2009-05-15 10:01:24 UTC (rev 3379)
@@ -1,5 +1,13 @@
2009-05-15 Matthew Mundell <mmundell at intevation.de>
+ * src/tests/new_task_small_rc (CLIENTSIDE_USERRULES): Add two rules.
+
+ * src/manage.c (send_task_rules): New function.
+ (start_task): Move required preferences to follow task preferences.
+ Enable sending of task rules.
+
+2009-05-15 Matthew Mundell <mmundell at intevation.de>
+
* src/tests/omp_delete_task_2.c: New file. Tests removing a running
task.
Modified: trunk/openvas-manager/src/manage.c
===================================================================
--- trunk/openvas-manager/src/manage.c 2009-05-15 08:39:06 UTC (rev 3378)
+++ trunk/openvas-manager/src/manage.c 2009-05-15 10:01:24 UTC (rev 3379)
@@ -886,6 +886,83 @@
}
/**
+ * @brief Send the task rules (CLIENTSIDE_USERRULES) to the server.
+ *
+ * @param[in] task Task.
+ *
+ * @return 0 on success, -1 on failure.
+ */
+static int
+send_task_rules (task_t task)
+{
+ char* desc = task_description (task);
+ char* orig_desc = desc;
+ char* seek;
+
+ while (1)
+ {
+ char* eq;
+ seek = strchr (desc, '\n');
+ eq = seek
+ ? memchr (desc, '=', seek - desc)
+ : strchr (desc, '=');
+ if (eq)
+ {
+#if 0
+ tracef (" skip: %.*s\n",
+ seek ? seek - desc : strlen (seek),
+ desc);
+#endif
+ }
+ else if ((seek ? seek - desc >= 27 : 1)
+ && (strncmp (desc, "begin(CLIENTSIDE_USERRULES)", 27) == 0))
+ {
+ /* Send the preferences. */
+ desc = seek + 1;
+ while ((seek = strchr (desc, '\n')))
+ {
+ if ((seek ? seek - desc > 5 : 1)
+ && strncmp (desc, "end(", 4) == 0)
+ {
+ break;
+ }
+
+ if (sendn_to_server (desc, seek ? seek - desc : strlen (desc)))
+ return -1;
+ if (sendn_to_server ("\n", 1))
+ return -1;
+
+ desc = seek + 1;
+ }
+ }
+ else if ((seek ? seek - desc > 7 : 1)
+ && strncmp (desc, "begin(", 6) == 0)
+ {
+ /* Read over the section. */
+ desc = seek + 1;
+ while ((seek = strchr (desc, '\n')))
+ {
+ if ((seek ? seek - desc > 5 : 1)
+ && strncmp (desc, "end(", 4) == 0)
+ {
+ break;
+ }
+#if 0
+ tracef ("skip s: %.*s\n",
+ seek ? seek - desc : strlen (seek),
+ desc);
+#endif
+ desc = seek + 1;
+ }
+ }
+ if (seek == NULL) break;
+ desc = seek + 1;
+ }
+ free (orig_desc);
+ return 0;
+}
+
+/**
* @brief Start a task.
*
* Use \ref send_to_server to queue the task start sequence in \ref to_server.
@@ -918,12 +995,6 @@
if (send_to_server ("CLIENT <|> PREFERENCES <|>\n")) return -1;
- if (send_to_server ("ntp_keep_communication_alive <|> yes\n")) return -1;
- if (send_to_server ("ntp_client_accepts_notes <|> yes\n")) return -1;
- // FIX still getting FINISHED msgs
- if (send_to_server ("ntp_opt_show_end <|> no\n")) return -1;
- //if (send_to_server ("ntp_short_status <|> yes\n")) return -1;
-
plugins = task_plugins (task);
if (strlen (plugins))
fail = sendf_to_server ("plugin_set <|> %s\n", plugins);
@@ -932,15 +1003,20 @@
free (plugins);
if (fail) return -1;
+ if (send_to_server ("ntp_keep_communication_alive <|> yes\n")) return -1;
+ if (send_to_server ("ntp_client_accepts_notes <|> yes\n")) return -1;
+ // FIX still getting FINISHED msgs
+ if (send_to_server ("ntp_opt_show_end <|> no\n")) return -1;
+ if (send_to_server ("ntp_short_status <|> no\n")) return -1;
+
if (send_task_preferences (task, "SERVER_PREFS")) return -1;
if (send_task_preferences (task, "PLUGINS_PREFS")) return -1;
if (send_to_server ("<|> CLIENT\n")) return -1;
if (send_to_server ("CLIENT <|> RULES <|>\n")) return -1;
-#if 0
- send_task_rules (task);
-#endif
+
+ if (send_task_rules (task)) return -1;
if (send_to_server ("<|> CLIENT\n")) return -1;
targets = task_preference (task, "targets");
Modified: trunk/openvas-manager/src/tests/new_task_small_rc
===================================================================
--- trunk/openvas-manager/src/tests/new_task_small_rc 2009-05-15 08:39:06 UTC (rev 3378)
+++ trunk/openvas-manager/src/tests/new_task_small_rc 2009-05-15 10:01:24 UTC (rev 3379)
@@ -68,6 +68,8 @@
end(SERVER_PREFS)
begin(CLIENTSIDE_USERRULES)
+ 0 = accept 127.0.0.1
+ 1 = accept 127.0.0.1
end(CLIENTSIDE_USERRULES)
begin(PLUGINS_PREFS)
More information about the Openvas-commits
mailing list