[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