[Openvas-commits] r8429 - in trunk/openvas-manager: . src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Jul 15 01:37:09 CEST 2010


Author: mattm
Date: 2010-07-15 01:37:05 +0200 (Thu, 15 Jul 2010)
New Revision: 8429

Modified:
   trunk/openvas-manager/ChangeLog
   trunk/openvas-manager/src/omp.c
Log:
	Reduce GET_VERSION to single fixed version.  Enable GET_VERSION before
	authentication.

	* src/omp.c (client_state_t): Add CLIENT_GET_VERSION_AUTHENTIC.
	(omp_xml_handle_start_element): Add GET_VERSION check to CLIENT_TOP.
	Improve first command error message.  Close a single COMMANDS if in
	one or more COMMANDS when the first command error occurs.  Use new
	special state for GET_VERSION after authenticate.
	(omp_xml_handle_end_element): Reduce GET_VERSION response.  Check which
	state to use after GET_VERSION.

Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog	2010-07-14 23:05:22 UTC (rev 8428)
+++ trunk/openvas-manager/ChangeLog	2010-07-14 23:37:05 UTC (rev 8429)
@@ -1,5 +1,18 @@
 2010-07-14  Matthew Mundell <matthew.mundell at greenbone.net>
 
+	Reduce GET_VERSION to single fixed version.  Enable GET_VERSION before
+	authentication.
+
+	* src/omp.c (client_state_t): Add CLIENT_GET_VERSION_AUTHENTIC.
+	(omp_xml_handle_start_element): Add GET_VERSION check to CLIENT_TOP.
+	Improve first command error message.  Close a single COMMANDS if in
+	one or more COMMANDS when the first command error occurs.  Use new
+	special state for GET_VERSION after authenticate.
+	(omp_xml_handle_end_element): Reduce GET_VERSION response.  Check which
+	state to use after GET_VERSION.
+
+2010-07-14  Matthew Mundell <matthew.mundell at greenbone.net>
+
 	* src/openvasmd_report_html.xsl (report): Leave sorting to Manager.
 
 2010-07-13  Matthew Mundell <matthew.mundell at greenbone.net>

Modified: trunk/openvas-manager/src/omp.c
===================================================================
--- trunk/openvas-manager/src/omp.c	2010-07-14 23:05:22 UTC (rev 8428)
+++ trunk/openvas-manager/src/omp.c	2010-07-14 23:37:05 UTC (rev 8429)
@@ -2091,6 +2091,7 @@
   CLIENT_GET_TARGETS,
   CLIENT_GET_TASKS,
   CLIENT_GET_VERSION,
+  CLIENT_GET_VERSION_AUTHENTIC,
   CLIENT_HELP,
   CLIENT_MODIFY_REPORT,
   CLIENT_MODIFY_REPORT_COMMENT,
@@ -2567,6 +2568,12 @@
   switch (client_state)
     {
       case CLIENT_TOP:
+        if (strcasecmp ("GET_VERSION", element_name) == 0)
+          {
+            set_client_state (CLIENT_GET_VERSION);
+            break;
+          }
+        /*@fallthrough@*/
       case CLIENT_COMMANDS:
         if (strcasecmp ("AUTHENTICATE", element_name) == 0)
           {
@@ -2590,11 +2597,14 @@
             // TODO: If one of other commands, STATUS_ERROR_MUST_AUTH
             if (send_to_client
                  (XML_ERROR_SYNTAX ("omp",
-                                    "First command must be AUTHENTICATE")))
+                                    "First command must be AUTHENTICATE,"
+                                    " COMMANDS or GET_VERSION")))
               {
                 error_send_to_client (error);
                 return;
               }
+            if (client_state == CLIENT_COMMANDS)
+              send_to_client ("</commands_response>");
             g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
                          "Must authenticate first.");
           }
@@ -3194,7 +3204,7 @@
             set_client_state (CLIENT_GET_TASKS);
           }
         else if (strcasecmp ("GET_VERSION", element_name) == 0)
-          set_client_state (CLIENT_GET_VERSION);
+          set_client_state (CLIENT_GET_VERSION_AUTHENTIC);
         else if (strcasecmp ("HELP", element_name) == 0)
           set_client_state (CLIENT_HELP);
         else if (strcasecmp ("MODIFY_CONFIG", element_name) == 0)
@@ -9038,12 +9048,16 @@
         }
 
       case CLIENT_GET_VERSION:
+      case CLIENT_GET_VERSION_AUTHENTIC:
         SEND_TO_CLIENT_OR_FAIL ("<get_version_response"
                                 " status=\"" STATUS_OK "\""
                                 " status_text=\"" STATUS_OK_TEXT "\">"
-                                "<version preferred=\"yes\">1.0</version>"
+                                "<version>1.0</version>"
                                 "</get_version_response>");
-        set_client_state (CLIENT_AUTHENTIC);
+        if (client_state)
+          set_client_state (CLIENT_AUTHENTIC);
+        else
+          set_client_state (CLIENT_TOP);
         break;
 
       case CLIENT_GET_SCHEDULES:



More information about the Openvas-commits mailing list