[Openvas-commits] r3498 - in trunk/openvas-manager: . src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed May 27 19:03:56 CEST 2009
Author: mattm
Date: 2009-05-27 19:03:55 +0200 (Wed, 27 May 2009)
New Revision: 3498
Modified:
trunk/openvas-manager/ChangeLog
trunk/openvas-manager/src/CMakeLists.txt
trunk/openvas-manager/src/manage.c
trunk/openvas-manager/src/manage.h
trunk/openvas-manager/src/omp.c
trunk/openvas-manager/src/otp.c
trunk/openvas-manager/src/otp.h
Log:
Switch to libopenvas nvtis for plugin information.
* src/manage.c (find_plugin, free_plugin_for_hash_table)
(make_plugin, free_plugin, make_plugins, free_plugin, make_plugins)
(free_plugins, plugin_tags, plugins_size, add_plugin)
(plugin_oid, plugin_name, plugin_category, plugin_copyright)
(plugin_description, plugin_summary, plugin_family, plugin_version)
(plugin_cve_id, plugin_bugtraq_id, plugin_xrefs, plugin_fingerprints)
(set_plugin_oid, set_plugin_name, set_plugin_category)
(set_plugin_copyright, set_plugin_description, set_plugin_summary)
(set_plugin_family, set_plugin_version, set_plugin_cve_id)
(set_plugin_bugtraq_id, set_plugin_xrefs, set_plugin_fingerprints)
(set_plugin_tags): Remove.
* src/manage.h: Update headers.
* src/omp.c: Convert plugin-related calls into nvti equivalents.
* src/otp.h (server_t): Make plugins an nvtis_t.
* src/otp.c: Convert plugin-related calls into nvti equivalents.
(current_plugins, current_plugin): Convert types to nvti equivalents.
* src/CMakeLists.txt (omp, otp): Add openvas headers dir to compile flags.
Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/ChangeLog 2009-05-27 17:03:55 UTC (rev 3498)
@@ -1,5 +1,31 @@
2009-05-27 Matthew Mundell <mmundell at intevation.de>
+ Switch to libopenvas nvtis for plugin information.
+
+ * src/manage.c (find_plugin, free_plugin_for_hash_table)
+ (make_plugin, free_plugin, make_plugins, free_plugin, make_plugins)
+ (free_plugins, plugin_tags, plugins_size, add_plugin)
+ (plugin_oid, plugin_name, plugin_category, plugin_copyright)
+ (plugin_description, plugin_summary, plugin_family, plugin_version)
+ (plugin_cve_id, plugin_bugtraq_id, plugin_xrefs, plugin_fingerprints)
+ (set_plugin_oid, set_plugin_name, set_plugin_category)
+ (set_plugin_copyright, set_plugin_description, set_plugin_summary)
+ (set_plugin_family, set_plugin_version, set_plugin_cve_id)
+ (set_plugin_bugtraq_id, set_plugin_xrefs, set_plugin_fingerprints)
+ (set_plugin_tags): Remove.
+ * src/manage.h: Update headers.
+
+ * src/omp.c: Convert plugin-related calls into nvti equivalents.
+
+ * src/otp.h (server_t): Make plugins an nvtis_t.
+
+ * src/otp.c: Convert plugin-related calls into nvti equivalents.
+ (current_plugins, current_plugin): Convert types to nvti equivalents.
+
+ * src/CMakeLists.txt (omp, otp): Add openvas headers dir to compile flags.
+
+2009-05-27 Matthew Mundell <mmundell at intevation.de>
+
Implement OMP GET_NVT_FEED_DETAILS when called to return a specific NVT.
* src/manage.c (find_plugin): New function.
Modified: trunk/openvas-manager/src/CMakeLists.txt
===================================================================
--- trunk/openvas-manager/src/CMakeLists.txt 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/CMakeLists.txt 2009-05-27 17:03:55 UTC (rev 3498)
@@ -72,10 +72,10 @@
set_target_properties (manage PROPERTIES COMPILE_FLAGS "${HEADER_TEMP} ${TASKS_CFLAG} ${GLIB_CFLAGS}")
add_library (omp omp.c)
-set_target_properties (omp PROPERTIES COMPILE_FLAGS "${TASKS_CFLAG} ${GLIB_CFLAGS}")
+set_target_properties (omp PROPERTIES COMPILE_FLAGS "${HEADER_TEMP} ${TASKS_CFLAG} ${GLIB_CFLAGS}")
add_library (otp otp.c)
-set_target_properties (otp PROPERTIES COMPILE_FLAGS "${TASKS_CFLAG} ${GLIB_CFLAGS}")
+set_target_properties (otp PROPERTIES COMPILE_FLAGS "${HEADER_TEMP} ${TASKS_CFLAG} ${GLIB_CFLAGS}")
## Program
Modified: trunk/openvas-manager/src/manage.c
===================================================================
--- trunk/openvas-manager/src/manage.c 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/manage.c 2009-05-27 17:03:55 UTC (rev 3498)
@@ -1177,74 +1177,6 @@
/* Plugins. */
-plugin_t*
-make_plugin ()
-{
- plugin_t* plugin = calloc (1, sizeof (plugin_t));
- tracef ("plugin make: %p\n", plugin);
- return plugin;
-}
-
-void
-free_plugin (plugin_t* plugin)
-{
- tracef ("plugin free: %p\n", plugin);
- if (plugin == NULL) return;
- if (plugin->oid) free (plugin->oid);
- if (plugin->name) free (plugin->name);
- if (plugin->category) free (plugin->category);
- if (plugin->copyright) free (plugin->copyright);
- if (plugin->description) free (plugin->description);
- if (plugin->summary) free (plugin->summary);
- if (plugin->family) free (plugin->family);
- if (plugin->version) free (plugin->version);
- if (plugin->cve_id) free (plugin->cve_id);
- if (plugin->bugtraq_id) free (plugin->bugtraq_id);
- if (plugin->xrefs) free (plugin->xrefs);
- if (plugin->fingerprints) free (plugin->fingerprints);
- free (plugin);
-}
-
-void
-free_plugin_for_hash_table (gpointer plugin)
-{
- free_plugin ((plugin_t*) plugin);
-}
-
-plugins_t*
-make_plugins ()
-{
- return g_hash_table_new_full (g_str_hash,
- g_str_equal,
- NULL,
- free_plugin_for_hash_table);
-}
-
-void
-free_plugins (plugins_t* plugins)
-{
- if (plugins) g_hash_table_destroy (plugins);
-}
-
-unsigned int
-plugins_size (plugins_t* plugins)
-{
- return g_hash_table_size (plugins);
-}
-
-void
-add_plugin (plugins_t* plugins, plugin_t* plugin)
-{
- if (plugin)
- g_hash_table_insert (plugins, (gpointer) plugin->oid, (gpointer) plugin);
-}
-
-plugin_t*
-find_plugin (plugins_t* plugins, const char* oid)
-{
- return g_hash_table_lookup (plugins, oid);
-}
-
/**
* @brief Request the list of plugins from the server.
*
@@ -1257,172 +1189,3 @@
return -1;
return 0;
}
-
-char*
-plugin_oid (plugin_t* plugin)
-{
- return plugin->oid;
-}
-
-char*
-plugin_name (plugin_t* plugin)
-{
- return plugin->name;
-}
-
-char*
-plugin_category (plugin_t* plugin)
-{
- return plugin->category;
-}
-
-char*
-plugin_copyright (plugin_t* plugin)
-{
- return plugin->copyright;
-}
-
-char*
-plugin_description (plugin_t* plugin)
-{
- return plugin->description;
-}
-
-char*
-plugin_summary (plugin_t* plugin)
-{
- return plugin->summary;
-}
-
-char*
-plugin_family (plugin_t* plugin)
-{
- return plugin->family;
-}
-
-char*
-plugin_version (plugin_t* plugin)
-{
- return plugin->version;
-}
-
-char*
-plugin_cve_id (plugin_t* plugin)
-{
- return plugin->cve_id;
-}
-
-char*
-plugin_bugtraq_id (plugin_t* plugin)
-{
- return plugin->bugtraq_id;
-}
-
-char*
-plugin_xrefs (plugin_t* plugin)
-{
- return plugin->xrefs;
-}
-
-char*
-plugin_fingerprints (plugin_t* plugin)
-{
- return plugin->fingerprints;
-}
-
-char*
-plugin_tags (plugin_t* plugin)
-{
- return plugin->tags;
-}
-
-void
-set_plugin_oid (plugin_t* plugin, const char* value)
-{
- if (plugin->oid) free (plugin->oid);
- plugin->oid = g_strdup (value);
-}
-
-void
-set_plugin_name (plugin_t* plugin, const char* value)
-{
- if (plugin->name) free (plugin->name);
- plugin->name = g_strdup (value);
-}
-
-void
-set_plugin_category (plugin_t* plugin, const char* value)
-{
- if (plugin->category) free (plugin->category);
- plugin->category = g_strdup (value);
-}
-
-void
-set_plugin_copyright (plugin_t* plugin, const char* value)
-{
- if (plugin->copyright) free (plugin->copyright);
- plugin->copyright = g_strdup (value);
-}
-
-void
-set_plugin_description (plugin_t* plugin, const char* value)
-{
- if (plugin->description) free (plugin->description);
- plugin->description = g_strdup (value);
-}
-
-void
-set_plugin_summary (plugin_t* plugin, const char* value)
-{
- if (plugin->summary) free (plugin->summary);
- plugin->summary = g_strdup (value);
-}
-
-void
-set_plugin_family (plugin_t* plugin, const char* value)
-{
- if (plugin->family) free (plugin->family);
- plugin->family = g_strdup (value);
-}
-
-void
-set_plugin_version (plugin_t* plugin, const char* value)
-{
- if (plugin->version) free (plugin->version);
- plugin->version = g_strdup (value);
-}
-
-void
-set_plugin_cve_id (plugin_t* plugin, const char* value)
-{
- if (plugin->cve_id) free (plugin->cve_id);
- plugin->cve_id = g_strdup (value);
-}
-
-void
-set_plugin_bugtraq_id (plugin_t* plugin, const char* value)
-{
- if (plugin->bugtraq_id) free (plugin->bugtraq_id);
- plugin->bugtraq_id = g_strdup (value);
-}
-
-void
-set_plugin_xrefs (plugin_t* plugin, const char* value)
-{
- if (plugin->xrefs) free (plugin->xrefs);
- plugin->xrefs = g_strdup (value);
-}
-
-void
-set_plugin_fingerprints (plugin_t* plugin, const char* value)
-{
- if (plugin->fingerprints) free (plugin->fingerprints);
- plugin->fingerprints = g_strdup (value);
-}
-
-void
-set_plugin_tags (plugin_t* plugin, const char* value)
-{
- if (plugin->tags) free (plugin->tags);
- plugin->tags = g_strdup (value);
-}
Modified: trunk/openvas-manager/src/manage.h
===================================================================
--- trunk/openvas-manager/src/manage.h 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/manage.h 2009-05-27 17:03:55 UTC (rev 3498)
@@ -349,127 +349,7 @@
/* Plugins. */
-typedef struct
-{
- char* oid;
- char* name;
- char* category;
- char* copyright;
- char* description;
- char* summary;
- char* family;
- char* version;
- char* cve_id;
- char* bugtraq_id;
- char* xrefs;
- char* fingerprints;
- char* tags;
-} plugin_t;
-
-typedef GHashTable plugins_t;
-
-plugin_t*
-make_plugin ();
-
-void
-free_plugin (plugin_t*);
-
-plugins_t*
-make_plugins ();
-
-void
-free_plugins (plugins_t*);
-
int
request_plugin_list ();
-unsigned int
-plugins_size (plugins_t*);
-
-void
-add_plugin (plugins_t*, plugin_t*);
-
-plugin_t*
-find_plugin (plugins_t*, const char*);
-
-#define plugins_find g_hash_table_find
-
-char*
-plugin_oid (plugin_t*);
-
-char*
-plugin_name (plugin_t*);
-
-char*
-plugin_category (plugin_t*);
-
-char*
-plugin_copyright (plugin_t*);
-
-char*
-plugin_description (plugin_t*);
-
-char*
-plugin_summary (plugin_t*);
-
-char*
-plugin_family (plugin_t*);
-
-char*
-plugin_version (plugin_t*);
-
-char*
-plugin_cve_id (plugin_t*);
-
-char*
-plugin_bugtraq_id (plugin_t*);
-
-char*
-plugin_xrefs (plugin_t*);
-
-char*
-plugin_fingerprints (plugin_t*);
-
-char*
-plugin_tags (plugin_t*);
-
-void
-set_plugin_oid (plugin_t*, const char*);
-
-void
-set_plugin_name (plugin_t*, const char*);
-
-void
-set_plugin_category (plugin_t*, const char*);
-
-void
-set_plugin_copyright (plugin_t*, const char*);
-
-void
-set_plugin_description (plugin_t*, const char*);
-
-void
-set_plugin_summary (plugin_t*, const char*);
-
-void
-set_plugin_family (plugin_t*, const char*);
-
-void
-set_plugin_version (plugin_t*, const char*);
-
-void
-set_plugin_cve_id (plugin_t*, const char*);
-
-void
-set_plugin_bugtraq_id (plugin_t*, const char*);
-
-void
-set_plugin_xrefs (plugin_t*, const char*);
-
-void
-set_plugin_fingerprints (plugin_t*, const char*);
-
-void
-set_plugin_tags (plugin_t*, const char*);
-
#endif
Modified: trunk/openvas-manager/src/omp.c
===================================================================
--- trunk/openvas-manager/src/omp.c 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/omp.c 2009-05-27 17:03:55 UTC (rev 3498)
@@ -47,6 +47,8 @@
#include <string.h>
#include <stdlib.h>
+#include <openvas/nvti.h>
+
#ifdef S_SPLINT_S
#include "splint.h"
#endif
@@ -854,16 +856,16 @@
*
* @param[in] key The plugin OID.
* @param[in] value The plugin.
- * @param[in] dummy Dummy variable, for plugins_find.
+ * @param[in] dummy Dummy variable, for nvtis_find.
*
* @return TRUE if out of space in to_client buffer, else FALSE.
*/
static gboolean
send_plugin (gpointer oid_gp, gpointer plugin_gp, gpointer details_gp)
{
- plugin_t* plugin = (plugin_t*) plugin_gp;
+ nvti_t* plugin = (nvti_t*) plugin_gp;
char* oid = (char*) oid_gp;
- char* name = plugin_name (plugin);
+ char* name = nvti_name (plugin);
int details = (int) details_gp;
gchar* msg;
@@ -873,7 +875,7 @@
gsize dummy;
#define DEF(x) \
- char* x = plugin_ ## x (plugin); \
+ char* x = nvti_ ## x (plugin); \
/* FIX Temp hack. */ \
gchar* x ## _utf8 = x ? g_convert (x, strlen (x), \
"utf-8", "iso_8895-1", \
@@ -889,12 +891,12 @@
DEF (summary);
DEF (family);
DEF (version);
- DEF (tags);
+ DEF (tag);
msg = g_strdup_printf ("<nvt>"
"<oid>%s</oid>"
"<name>%s</name>"
- "<category>%s</category>"
+ "<category>%i</category>"
"<copyright>%s</copyright>"
"<description>%s</description>"
"<summary>%s</summary>"
@@ -916,23 +918,23 @@
"</nvt>",
oid,
name_text,
- plugin_category (plugin),
+ nvti_category (plugin),
copyright_text,
description_text,
summary_text,
family_text,
version_text,
- plugin_cve_id (plugin),
- plugin_bugtraq_id (plugin),
- plugin_xrefs (plugin),
- plugin_fingerprints (plugin),
- tags_text);
+ nvti_cve (plugin),
+ nvti_bid (plugin),
+ nvti_xref (plugin),
+ nvti_sign_key_ids (plugin),
+ tag_text);
g_free (copyright_text);
g_free (description_text);
g_free (summary_text);
g_free (family_text);
g_free (version_text);
- g_free (tags_text);
+ g_free (tag_text);
}
else
msg = g_strdup_printf ("<nvt>"
@@ -1332,7 +1334,7 @@
SEND_TO_CLIENT_OR_FAIL ("<get_nvt_feed_all_response>"
"<status>" STATUS_OK "</status>");
SENDF_TO_CLIENT_OR_FAIL ("<nvt_count>%u</nvt_count>",
- plugins_size (server.plugins));
+ nvtis_size (server.plugins));
if (server.plugins_md5)
{
SEND_TO_CLIENT_OR_FAIL ("<feed_checksum>"
@@ -1340,7 +1342,7 @@
SEND_TO_CLIENT_OR_FAIL (server.plugins_md5);
SEND_TO_CLIENT_OR_FAIL ("</feed_checksum>");
}
- if (plugins_find (server.plugins, send_plugin, (gpointer) 0))
+ if (nvtis_find (server.plugins, send_plugin, (gpointer) 0))
{
error_send_to_client (error);
return;
@@ -1386,7 +1388,7 @@
SEND_TO_CLIENT_OR_FAIL ("<get_nvt_feed_details_response>");
if (current_uuid)
{
- plugin_t* plugin = find_plugin (server.plugins, current_uuid);
+ nvti_t* plugin = find_nvti (server.plugins, current_uuid);
if (plugin)
{
SEND_TO_CLIENT_OR_FAIL ("<status>" STATUS_OK "</status>");
@@ -1402,7 +1404,7 @@
else
{
SENDF_TO_CLIENT_OR_FAIL ("<nvt_count>%u</nvt_count>",
- plugins_size (server.plugins));
+ nvtis_size (server.plugins));
if (server.plugins_md5)
{
SEND_TO_CLIENT_OR_FAIL ("<feed_checksum>"
@@ -1410,7 +1412,7 @@
SEND_TO_CLIENT_OR_FAIL (server.plugins_md5);
SEND_TO_CLIENT_OR_FAIL ("</feed_checksum>");
}
- if (plugins_find (server.plugins, send_plugin, (gpointer) 1))
+ if (nvtis_find (server.plugins, send_plugin, (gpointer) 1))
{
error_send_to_client (error);
return;
Modified: trunk/openvas-manager/src/otp.c
===================================================================
--- trunk/openvas-manager/src/otp.c 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/otp.c 2009-05-27 17:03:55 UTC (rev 3498)
@@ -478,13 +478,13 @@
* @brief The current plugins, during reading of server plugin list.
*/
/*@only@*/
-static plugins_t* current_plugins = NULL;
+static nvtis_t* current_plugins = NULL;
/**
* @brief The current plugin, during reading of server plugin list.
*/
/*@only@*/
-static plugin_t* current_plugin = NULL;
+static nvti_t* current_plugin = NULL;
/* Server plugin dependencies. */
@@ -839,8 +839,8 @@
value = g_strdup (*messages);
if (current_plugins && current_plugin)
{
- set_plugin_tags (current_plugin, value);
- add_plugin (current_plugins, current_plugin);
+ nvti_set_tag (current_plugin, value);
+ add_nvti (current_plugins, current_plugin);
current_plugin = NULL;
}
set_server_state (SERVER_PLUGIN_LIST_OID);
@@ -1668,7 +1668,7 @@
{
if (strlen (field) == 0)
{
- free_plugins (server.plugins);
+ free_nvtis (server.plugins);
server.plugins = current_plugins;
current_plugins = NULL;
set_server_state (SERVER_DONE);
@@ -1683,75 +1683,76 @@
break;
}
assert (current_plugin == NULL);
- current_plugin = make_plugin ();
+ current_plugin = nvti_new ();
if (current_plugin == NULL) abort (); // FIX
- set_plugin_oid (current_plugin, field);
+ nvti_set_oid (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_NAME);
break;
}
case SERVER_PLUGIN_LIST_NAME:
{
- set_plugin_name (current_plugin, field);
+ nvti_set_name (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_CATEGORY);
break;
}
case SERVER_PLUGIN_LIST_CATEGORY:
{
- set_plugin_category (current_plugin, field);
+ // FIX parse category number from field
+ nvti_set_category (current_plugin, 0);
set_server_state (SERVER_PLUGIN_LIST_COPYRIGHT);
break;
}
case SERVER_PLUGIN_LIST_COPYRIGHT:
{
- set_plugin_copyright (current_plugin, field);
+ nvti_set_copyright (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_DESCRIPTION);
break;
}
case SERVER_PLUGIN_LIST_DESCRIPTION:
{
- set_plugin_description (current_plugin, field);
+ nvti_set_description (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_SUMMARY);
break;
}
case SERVER_PLUGIN_LIST_SUMMARY:
{
- set_plugin_summary (current_plugin, field);
+ nvti_set_summary (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_FAMILY);
break;
}
case SERVER_PLUGIN_LIST_FAMILY:
{
- set_plugin_family (current_plugin, field);
+ nvti_set_family (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_PLUGIN_VERSION);
break;
}
case SERVER_PLUGIN_LIST_PLUGIN_VERSION:
{
- set_plugin_version (current_plugin, field);
+ nvti_set_version (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_CVE_ID);
break;
}
case SERVER_PLUGIN_LIST_CVE_ID:
{
- set_plugin_cve_id (current_plugin, field);
+ nvti_set_cve (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_BUGTRAQ_ID);
break;
}
case SERVER_PLUGIN_LIST_BUGTRAQ_ID:
{
- set_plugin_bugtraq_id (current_plugin, field);
+ nvti_set_bid (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_XREFS);
break;
}
case SERVER_PLUGIN_LIST_XREFS:
{
- set_plugin_xrefs (current_plugin, field);
+ nvti_set_xref (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_FPRS);
break;
}
case SERVER_PLUGIN_LIST_FPRS:
{
- set_plugin_fingerprints (current_plugin, field);
+ nvti_set_sign_key_ids (current_plugin, field);
set_server_state (SERVER_PLUGIN_LIST_TAGS);
switch (parse_server_plugin_list_tags (&messages))
{
@@ -1882,7 +1883,7 @@
* FIX depends what server does on multiple requests
*/
if (current_plugins == NULL)
- current_plugins = make_plugins ();
+ current_plugins = make_nvtis ();
set_server_state (SERVER_PLUGIN_LIST_OID);
}
else if (strncasecmp ("PORT", field, 4) == 0)
Modified: trunk/openvas-manager/src/otp.h
===================================================================
--- trunk/openvas-manager/src/otp.h 2009-05-27 16:51:57 UTC (rev 3497)
+++ trunk/openvas-manager/src/otp.h 2009-05-27 17:03:55 UTC (rev 3498)
@@ -29,6 +29,8 @@
#include "manage.h"
#include <glib.h>
+#include <openvas/nvti.h>
+
void
init_otp_data ();
@@ -70,7 +72,7 @@
{
char* plugins_md5; ///< MD5 sum over all tests.
GHashTable* plugins_dependencies; ///< Dependencies between plugins.
- plugins_t* plugins; ///< Plugin meta-information.
+ nvtis_t* plugins; ///< Plugin meta-information.
GHashTable* preferences; ///< Server preference.
GPtrArray* rules; ///< Server rules.
int rules_size; ///< Number of rules.
More information about the Openvas-commits
mailing list