[Openvas-commits] r11508 - in trunk/gsa: . src src/html

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Aug 25 20:36:41 CEST 2011


Author: mattm
Date: 2011-08-25 20:36:40 +0200 (Thu, 25 Aug 2011)
New Revision: 11508

Modified:
   trunk/gsa/ChangeLog
   trunk/gsa/src/gsad.c
   trunk/gsa/src/gsad_base.h
   trunk/gsa/src/gsad_omp.c
   trunk/gsa/src/gsad_omp.h
   trunk/gsa/src/html/omp.xsl
Log:
	Convert create_task to new param mechanism.

	* src/gsad.c (init_validator): Add rules for optional cases.
	(exec_omp_post): Pass single param instead of many.

	* src/gsad_base.h (GSAD_MESSAGE_INVALID): New define.

	* src/gsad_omp.c (new_task_omp): Show message.
	(CHECK): New macro.
	(create_task_omp): Replace multiple args with one.

	* src/gsad_omp.h: Update headers accordingly.

	* src/html/omp.xsl (new_task): Use optional cases of params.  Remove stray
	input.

Modified: trunk/gsa/ChangeLog
===================================================================
--- trunk/gsa/ChangeLog	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/ChangeLog	2011-08-25 18:36:40 UTC (rev 11508)
@@ -1,5 +1,23 @@
 2011-08-25  Matthew Mundell <matthew.mundell at greenbone.net>
 
+	Convert create_task to new param mechanism.
+
+	* src/gsad.c (init_validator): Add rules for optional cases.
+	(exec_omp_post): Pass single param instead of many.
+
+	* src/gsad_base.h (GSAD_MESSAGE_INVALID): New define.
+
+	* src/gsad_omp.c (new_task_omp): Show message.
+	(CHECK): New macro.
+	(create_task_omp): Replace multiple args with one.
+
+	* src/gsad_omp.h: Update headers accordingly.
+
+	* src/html/omp.xsl (new_task): Use optional cases of params.  Remove stray
+	input.
+
+2011-08-25  Matthew Mundell <matthew.mundell at greenbone.net>
+
 	Convert more pages to new param mechanism.
 
 	* src/gsad.c (exec_omp_post): Pass single param instead of many.

Modified: trunk/gsa/src/gsad.c
===================================================================
--- trunk/gsa/src/gsad.c	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/src/gsad.c	2011-08-25 18:36:40 UTC (rev 11508)
@@ -544,6 +544,7 @@
   openvas_validator_add (validator, "boolean",    "^0|1$");
   openvas_validator_add (validator, "comment",    "^[-_[:alnum:]äüöÄÜÖß, \\./]{0,400}$");
   openvas_validator_add (validator, "config_id",  "^[a-z0-9\\-]+$");
+  openvas_validator_add (validator, "config_id_optional", "^(--|[a-z0-9\\-]+)$");
   openvas_validator_add (validator, "condition",  "^[[:alnum:] ]{0,100}$");
   openvas_validator_add (validator, "create_credentials_type", "^(gen|pass|key)$");
   openvas_validator_add (validator, "credential_login", "^[-_[:alnum:]\\.@\\\\]{1,40}$");
@@ -555,6 +556,7 @@
   openvas_validator_add (validator, "domain",     "^[-[:alnum:]\\.]{1,80}$");
   openvas_validator_add (validator, "email",      "^[^@ ]{1,150}@[^@ ]{1,150}$");
   openvas_validator_add (validator, "escalator_id", "^[a-z0-9\\-]+$");
+  openvas_validator_add (validator, "escalator_id_optional", "^(--|[a-z0-9\\-]+)$");
   openvas_validator_add (validator, "event_data:name",  "^(.*){0,400}$");
   openvas_validator_add (validator, "event_data:value", "^(\\R|.)*$");
   openvas_validator_add (validator, "family",     "^[-_[:alnum:] :]{1,200}$");
@@ -608,7 +610,9 @@
   openvas_validator_add (validator, "method_data:name", "^(.*){0,400}$");
   openvas_validator_add (validator, "method_data:value", "^(\\R|.)*$");
   openvas_validator_add (validator, "slave_id",   "^[a-z0-9\\-]+$");
+  openvas_validator_add (validator, "slave_id_optional",   "^(--|[a-z0-9\\-]+)$");
   openvas_validator_add (validator, "target_id",  "^[a-z0-9\\-]+$");
+  openvas_validator_add (validator, "target_id_optional",  "^(--|[a-z0-9\\-]+)$");
   openvas_validator_add (validator, "task_id",    "^[a-z0-9\\-]+$");
   openvas_validator_add (validator, "text",       "^.{0,1000}");
   openvas_validator_add (validator, "threat",     "^(High|Medium|Low|Log|False Positive|)$");
@@ -621,6 +625,7 @@
   openvas_validator_add (validator, "target_locator", "^[[:alnum:] -_/]{1,80}$");
   openvas_validator_add (validator, "token", "^[a-z0-9\\-]+$");
   openvas_validator_add (validator, "schedule_id", "^[a-z0-9\\-]+$");
+  openvas_validator_add (validator, "schedule_id_optional", "^(--|[a-z0-9\\-]+)$");
   openvas_validator_add (validator, "uuid",       "^[0-9abcdefABCDEF\\-]{1,40}$");
   openvas_validator_add (validator, "year",       "^[0-9]+$");
   openvas_validator_add (validator, "calendar_unit", "^second|minute|hour|day|week|month|year|decade$");
@@ -2393,87 +2398,7 @@
   ELSE (create_escalator)
   ELSE (create_lsc_credential)
   ELSE (create_report)
-  else if (!strcmp (con_info->req_parms.cmd, "create_task"))
-    {
-      validate (validator, "name", &con_info->req_parms.name);
-      validate (validator, "comment", &con_info->req_parms.comment);
-      if (con_info->req_parms.escalator_id
-          && strcmp (con_info->req_parms.escalator_id, "--")
-          && openvas_validate (validator,
-                               "escalator_id",
-                               con_info->req_parms.escalator_id))
-        {
-          free (con_info->req_parms.escalator_id);
-          con_info->req_parms.escalator_id  = NULL;
-        }
-      if (con_info->req_parms.target_id
-          && strcmp (con_info->req_parms.target_id, "--")
-          && openvas_validate (validator,
-                               "target_id",
-                               con_info->req_parms.target_id))
-        {
-          free (con_info->req_parms.target_id);
-          con_info->req_parms.target_id  = NULL;
-        }
-      if (con_info->req_parms.config_id
-          && strcmp (con_info->req_parms.config_id, "--")
-          && openvas_validate (validator,
-                               "config_id",
-                               con_info->req_parms.config_id))
-        {
-          free (con_info->req_parms.config_id);
-          con_info->req_parms.config_id  = NULL;
-        }
-      if (con_info->req_parms.schedule_id
-          && strcmp (con_info->req_parms.schedule_id, "--")
-          && openvas_validate (validator,
-                               "schedule_id",
-                               con_info->req_parms.schedule_id))
-        {
-          free (con_info->req_parms.schedule_id);
-          con_info->req_parms.schedule_id  = NULL;
-        }
-      if (con_info->req_parms.slave_id
-          && strcmp (con_info->req_parms.slave_id, "--")
-          && openvas_validate (validator,
-                               "slave_id",
-                               con_info->req_parms.slave_id))
-        {
-          free (con_info->req_parms.slave_id);
-          con_info->req_parms.slave_id  = NULL;
-        }
-      validate (validator, "overrides", &con_info->req_parms.overrides);
-      validate (validator, "max_checks", &con_info->req_parms.max_checks);
-      validate (validator, "max_hosts", &con_info->req_parms.max_hosts);
-      if ((con_info->req_parms.name == NULL) ||
-          (con_info->req_parms.comment == NULL) ||
-          (con_info->req_parms.config_id == NULL) ||
-          (con_info->req_parms.overrides == NULL) ||
-          (con_info->req_parms.target_id == NULL) ||
-          (con_info->req_parms.escalator_id == NULL) ||
-          (con_info->req_parms.slave_id == NULL) ||
-          (con_info->req_parms.schedule_id == NULL) ||
-          (con_info->req_parms.max_checks == NULL) ||
-          (con_info->req_parms.max_hosts == NULL))
-        con_info->response
-         = new_task_omp (credentials,
-                         "Invalid parameter",
-                         con_info->req_parms.overrides
-                          ? strcmp (con_info->req_parms.overrides, "0")
-                          : 0);
-      else
-        con_info->response =
-          create_task_omp (credentials, con_info->req_parms.name,
-                           con_info->req_parms.comment,
-                           con_info->req_parms.target_id,
-                           con_info->req_parms.config_id,
-                           con_info->req_parms.escalator_id,
-                           con_info->req_parms.schedule_id,
-                           con_info->req_parms.slave_id,
-                           con_info->req_parms.overrides,
-                           con_info->req_parms.max_checks,
-                           con_info->req_parms.max_hosts);
-    }
+  ELSE (create_task)
   ELSE_OAP (create_user)
   else if (!strcmp (con_info->req_parms.cmd, "create_schedule"))
     {

Modified: trunk/gsa/src/gsad_base.h
===================================================================
--- trunk/gsa/src/gsad_base.h	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/src/gsad_base.h	2011-08-25 18:36:40 UTC (rev 11508)
@@ -40,6 +40,15 @@
 #define RESULTS_PER_PAGE 100
 
 /** @brief Answer for invalid input. */
+#define GSAD_MESSAGE_INVALID                                                      \
+  "<gsad_msg status_text=\"%s\" operation=\"%s\">"                                \
+  "At least one entered value contains invalid characters or exceeds"             \
+  " a size limit.  You may use the Back button of your browser to adjust"         \
+  " the entered values.  If in doubt, the online help of the respective section"  \
+  " will lead you to the appropriate help page."                                  \
+  "</gsad_msg>"
+
+/** @brief Answer for invalid input. */
 #define GSAD_MESSAGE_INVALID_PARAM(op)                                            \
   "<gsad_msg status_text=\"Invalid parameter\" operation=\"" op "\">"             \
   "At least one entered value contains invalid characters or exceeds"             \

Modified: trunk/gsa/src/gsad_omp.c
===================================================================
--- trunk/gsa/src/gsad_omp.c	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/src/gsad_omp.c	2011-08-25 18:36:40 UTC (rev 11508)
@@ -406,8 +406,6 @@
 /**
  * @brief Returns page to create a new task.
  *
- * @todo Display actual text given in \param message .
- *
  * @param[in]  credentials  Credentials of user issuing the action.
  * @param[in]  message      If not NULL, display message.
  * @param[in]  apply_overrides  Whether to apply overrides.
@@ -588,7 +586,7 @@
     }
 
   if (message)
-    g_string_append (xml, GSAD_MESSAGE_INVALID_PARAM ("Create Task"));
+    g_string_append_printf (xml, GSAD_MESSAGE_INVALID, message, "Create Task");
   g_string_append_printf (xml,
                           "<user>%s</user>"
                           "<apply_overrides>%i</apply_overrides>"
@@ -714,29 +712,22 @@
   return xsl_transform_omp (credentials, text);
 }
 
+#define CHECK(name)                                                            \
+  if (name == NULL)                                                            \
+    return new_task_omp (credentials,                                          \
+                         "Given " G_STRINGIFY (name) " was invalid",           \
+                         apply_overrides ? strcmp (apply_overrides, "0") : 0); \
+
 /**
  * @brief Create a task, get all tasks, XSL transform the result.
  *
- * @param[in]  credentials   Username and password for authentication.
- * @param[in]  name          New task name.
- * @param[in]  comment       Comment on task.
- * @param[in]  target_id     Target for task.
- * @param[in]  config_id     Config for task.
- * @param[in]  escalator_id  Escalator for task.
- * @param[in]  schedule_id   UUID of schedule for task.
- * @param[in]  slave_id      UUID of slave for task.
- * @param[in]  apply_overrides   Whether to apply overrides.
- * @param[in]  max_checks        Max checks task preference.
- * @param[in]  max_hosts         Max hosts task preference.
+ * @param[in]  credentials  Username and password for authentication.
+ * @param[in]  params       Request parameters.
  *
  * @return Result of XSL transformation.
  */
 char *
-create_task_omp (credentials_t * credentials, char *name, char *comment,
-                 char *target_id, char *config_id, const char *escalator_id,
-                 const char *schedule_id, const char *slave_id,
-                 const char *apply_overrides, const char *max_checks,
-                 const char *max_hosts)
+create_task_omp (credentials_t * credentials, params_t *params)
 {
   entity_t entity;
   gnutls_session_t session;
@@ -744,7 +735,31 @@
   int socket, ret;
   gchar *schedule_element, *escalator_element, *slave_element;
   gchar *html;
+  const char *name, *comment, *config_id, *apply_overrides, *target_id;
+  const char *escalator_id, *slave_id, *schedule_id, *max_checks, *max_hosts;
 
+  name = params_value (params, "name");
+  comment = params_value (params, "comment");
+  config_id = params_value (params, "config_id");
+  apply_overrides = params_value (params, "overrides");
+  target_id = params_value (params, "target_id");
+  escalator_id = params_value (params, "escalator_id_optional");
+  slave_id = params_value (params, "slave_id_optional");
+  schedule_id = params_value (params, "schedule_id_optional");
+  max_checks = params_value (params, "max_checks");
+  max_hosts = params_value (params, "max_hosts");
+
+  CHECK (name);
+  CHECK (comment);
+  CHECK (config_id);
+  CHECK (apply_overrides);
+  CHECK (target_id);
+  CHECK (escalator_id);
+  CHECK (slave_id);
+  CHECK (schedule_id);
+  CHECK (max_checks);
+  CHECK (max_hosts);
+
   switch (manager_connect (credentials, &socket, &session, &html))
     {
       case 0:
@@ -762,18 +777,18 @@
                              "/omp?cmd=get_tasks");
     }
 
-  if (!schedule_id || strcmp (schedule_id, "--") == 0)
+  if (schedule_id == NULL || strcmp (schedule_id, "--") == 0)
     schedule_element = g_strdup ("");
   else
     schedule_element = g_strdup_printf ("<schedule id=\"%s\"/>", schedule_id);
 
-  if (!escalator_id || strcmp (escalator_id, "--") == 0)
+  if (escalator_id == NULL || strcmp (escalator_id, "--") == 0)
     escalator_element = g_strdup ("");
   else
     escalator_element = g_strdup_printf ("<escalator id=\"%s\"/>",
                                          escalator_id);
 
-  if (!slave_id || strcmp (slave_id, "--") == 0)
+  if (slave_id == NULL || strcmp (slave_id, "--") == 0)
     slave_element = g_strdup ("");
   else
     slave_element = g_strdup_printf ("<slave id=\"%s\"/>", slave_id);

Modified: trunk/gsa/src/gsad_omp.h
===================================================================
--- trunk/gsa/src/gsad_omp.h	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/src/gsad_omp.h	2011-08-25 18:36:40 UTC (rev 11508)
@@ -40,9 +40,7 @@
 void omp_init (const gchar *, int);
 
 char * create_report_omp (credentials_t *, params_t *);
-char * create_task_omp (credentials_t *, char *, char *, char *, char *,
-                        const char *, const char *, const char *, const char *,
-                        const char *, const char *);
+char * create_task_omp (credentials_t *, params_t *);
 char * delete_task_omp (credentials_t *, params_t *);
 char * delete_trash_task_omp (credentials_t *, params_t *);
 char * edit_task_omp (credentials_t *, const char *, const char *, const char *,

Modified: trunk/gsa/src/html/omp.xsl
===================================================================
--- trunk/gsa/src/html/omp.xsl	2011-08-25 15:43:09 UTC (rev 11507)
+++ trunk/gsa/src/html/omp.xsl	2011-08-25 18:36:40 UTC (rev 11508)
@@ -11882,7 +11882,7 @@
         <tr>
           <td>Escalator (optional)</td>
           <td>
-            <select name="escalator_id">
+            <select name="escalator_id_optional">
               <option value="--">--</option>
               <xsl:apply-templates select="get_escalators_response/escalator"
                                    mode="newtask"/>
@@ -11892,7 +11892,7 @@
         <tr>
           <td>Schedule (optional)</td>
           <td>
-            <select name="schedule_id">
+            <select name="schedule_id_optional">
               <option value="--">--</option>
               <xsl:apply-templates select="get_schedules_response/schedule"
                                    mode="newtask"/>
@@ -11902,7 +11902,7 @@
         <tr>
           <td>Slave (optional)</td>
           <td>
-            <select name="slave_id">
+            <select name="slave_id_optional">
               <option value="--">--</option>
               <xsl:apply-templates select="get_slaves_response/slave"
                                    mode="newtask"/>
@@ -11913,7 +11913,6 @@
       <table border="0" cellspacing="0" cellpadding="3" width="100%">
         <xsl:choose>
           <xsl:when test="commands_response/get_tasks_response/task/target/@id = ''">
-            <input type="hidden" name="target_id" value="--"/>
           </xsl:when>
           <xsl:otherwise>
             <h2>Scan Intensity</h2>



More information about the Openvas-commits mailing list