[Openvas-commits] r2639 - in trunk/openvas-client: . nessus

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Mar 3 11:24:35 CET 2009


Author: felix
Date: 2009-03-03 11:24:33 +0100 (Tue, 03 Mar 2009)
New Revision: 2639

Modified:
   trunk/openvas-client/ChangeLog
   trunk/openvas-client/nessus/plugin_infos.c
   trunk/openvas-client/nessus/plugin_infos.h
Log:
* nessus/plugin_infos.c, nessus/plugin_infos.h
(plugin_info_window_show_cb): New, callback method can be used to show
plugin info dialog when only a NVTs OID is known.


Modified: trunk/openvas-client/ChangeLog
===================================================================
--- trunk/openvas-client/ChangeLog	2009-03-03 05:56:37 UTC (rev 2638)
+++ trunk/openvas-client/ChangeLog	2009-03-03 10:24:33 UTC (rev 2639)
@@ -1,3 +1,9 @@
+2009-03-03  Felix Wolfsteller <felix.wolfsteller at intevation.de>
+
+	* nessus/plugin_infos.c, nessus/plugin_infos.h
+	(plugin_info_window_show_cb): New, callback method can be used to show
+	plugin info dialog when only a NVTs OID is known.
+
 2009-03-02  Felix Wolfsteller <felix.wolfsteller at intevation.de>
 
 	Removed obsolete code and variables in cli module, pointed to by

Modified: trunk/openvas-client/nessus/plugin_infos.c
===================================================================
--- trunk/openvas-client/nessus/plugin_infos.c	2009-03-03 05:56:37 UTC (rev 2638)
+++ trunk/openvas-client/nessus/plugin_infos.c	2009-03-03 10:24:33 UTC (rev 2639)
@@ -313,12 +313,36 @@
 }
 
 /**
+ * @brief Callback, extracts plugin name and shows info dialog, using current
+ * @brief Context.
+ * 
+ * If either no plugin list in current context is found or no oid is provided,
+ * does nothing.
+ * 
+ * @param emitter ignored (callback)
+ * @param oid     OID of plugin to show info.
+ */
+void
+plugin_info_window_show_cb (GtkWidget* emitter, char* oid)
+{
+  if (oid == NULL || Context->plugins == NULL)
+    return;
+
+  /* Search name of nvt first, to make plugin_info_window_setup happy. Creates 
+     some overhead, as the plugin list will be traversed in ..._setup again. */
+  struct nessus_plugin* nvt = nessus_plugin_get_by_oid (Context->plugins, oid);
+
+  if (nvt)
+    plugin_info_window_setup (Context->plugins, nvt->name);
+}
+
+/**
  * @brief Draws the window which contains information about a plugin.
  * 
- * @param res  Pointer to a nessus_plugin struct.
+ * @param res  Pointer to a nessus_plugin struct (list).
  * @param name The plugins name.
  */
-void 
+void
 plugin_info_window_setup (struct nessus_plugin * res, char* pluginname)
 {
   GtkWindow * window = GTK_WINDOW(arg_get_value(MainDialog, "WINDOW"));
@@ -338,8 +362,9 @@
   struct nessus_plugin * plugin;
   char * txt;
 
-  plugin = nessus_plugin_get_by_name(res, pluginname);
-  if( plugin == NULL )
+  printf("BUGME: plugin infos name %s\n", pluginname);
+  plugin = nessus_plugin_get_by_name (res, pluginname);
+  if (plugin == NULL)
   {
 #ifdef DEBUG
     fprintf(stderr, _("Error ! Plugin selected not found ?!\n"));

Modified: trunk/openvas-client/nessus/plugin_infos.h
===================================================================
--- trunk/openvas-client/nessus/plugin_infos.h	2009-03-03 05:56:37 UTC (rev 2638)
+++ trunk/openvas-client/nessus/plugin_infos.h	2009-03-03 10:24:33 UTC (rev 2639)
@@ -30,5 +30,6 @@
 #define _NESSUSC_PLUGIN_INFOS_H
 
 void plugin_info_window_setup(struct nessus_plugin *, char * pluginname);
+void plugin_info_window_show_cb (GtkWidget* emitter, char* oid);
 
 #endif



More information about the Openvas-commits mailing list