[Openvas-devel] Patch for CR #7
Michael Wiegand
michael.wiegand at intevation.de
Wed Jun 4 09:35:09 CEST 2008
Hi,
I've prepared a patch for change request #7. Please take a look at the
attached file and let me know what you think. As I'm new to the openvas
project, I'd really appreciate any suggestions and feedback.
Since the new OIDs are not yet available, report_save.c will construct a
legacy OID with the plugin ID for the time being; hope that's OK.
Regards,
Michael
-------------- next part --------------
Index: openvas-client/nessus/preferences.c
===================================================================
--- openvas-client/nessus/preferences.c (Revision 886)
+++ openvas-client/nessus/preferences.c (Arbeitskopie)
@@ -719,6 +719,8 @@
return (void *)1;
else if(!strcmp(name, "report_plugin_details_in_pdf"))
return (void *)1;
+ else if(!strcmp(name, "show_nvt_name_and_oid"))
+ return (void *)1;
else
return NULL;
}
Index: openvas-client/nessus/prefs_dialog/prefs_dialog_prefs.c
===================================================================
--- openvas-client/nessus/prefs_dialog/prefs_dialog_prefs.c (Revision 886)
+++ openvas-client/nessus/prefs_dialog/prefs_dialog_prefs.c (Arbeitskopie)
@@ -48,6 +48,7 @@
GtkWidget * check_reportplugincache;
GtkWidget * check_scopesplugincache;
GtkWidget * check_reportpluginpdf;
+ GtkWidget * check_show_nvt_name_and_oid;
GtkWidget * entry_url_nessus;
GtkWidget * entry_url_cve;
GtkWidget * entry_url_bid;
@@ -186,6 +187,13 @@
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_reportpluginpdf),
prefs_get_int(Global, "report_plugin_details_in_pdf"));
+ check_show_nvt_name_and_oid = gtk_check_button_new_with_mnemonic(
+ _("Show script origin in report"));
+ gtk_widget_show(check_show_nvt_name_and_oid);
+ gtk_table_attach_defaults(GTK_TABLE(table), check_show_nvt_name_and_oid, 0, 1, 1, 2);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_show_nvt_name_and_oid),
+ prefs_get_int(Global, "show_nvt_name_and_oid"));
+
/*
frame = gtk_frame_new(_("External programs"));
gtk_widget_show(frame);
@@ -276,6 +284,9 @@
gtk_entry_get_text(GTK_ENTRY(entry_url_cve)));
prefs_set_string(Global, "url_bid",
gtk_entry_get_text(GTK_ENTRY(entry_url_bid)));
+ prefs_set_int(Global, "show_nvt_name_and_oid",
+ gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(check_show_nvt_name_and_oid))?1:0);
break;
}
Index: openvas-client/nessus/prefs_dialog/prefs_report.c
===================================================================
--- openvas-client/nessus/prefs_dialog/prefs_report.c (Revision 886)
+++ openvas-client/nessus/prefs_dialog/prefs_report.c (Arbeitskopie)
@@ -27,6 +27,7 @@
#include "report_save.h"
#include "data_mining.h"
#include "treeview_support.h"
+#include "nessus_plugin.h"
/* Convert the severity string to an integer level:
*
@@ -298,7 +299,11 @@
const char *values[3];
int depth = 0;
int has_parent;
+ struct context *context = arg_get_value((struct arglist*)user_data, "REPORT_CONTEXT");
+ int plugin_id = 0;
+ struct nessus_plugin *plugin;
+
if (!gtk_tree_model_get_iter(model, &iter, path))
{
fprintf(stderr, "row_activated: could not set iter from path\n");
@@ -338,7 +343,7 @@
clear_report_text(user_data);
subset = sort_uniq(query_backend(be,
- "SELECT report,severity FROM results"
+ "SELECT report,severity,plugin_id FROM results"
" WHERE %s = '%s' AND %s = '%s' AND %s = '%s'",
keys[0], values[0],
keys[1], values[1],
@@ -347,6 +352,27 @@
walk = subset;
while(walk)
{
+ if (((prefs_get_int(Global, "show_nvt_name_and_oid")) == 1) &&
+ ((prefs_get_int(Global, "reports_use_plugin_cache")) == 1))
+ {
+ plugin_id = atoi(subset_nth_value(walk, 2));
+ plugin = nessus_plugin_get_by_id(context->plugins, plugin_id);
+ if (plugin == NULL)
+ plugin = nessus_plugin_get_by_id(context->scanners, plugin_id);
+ if (plugin == NULL)
+ {
+ fprintf(stderr, "prefs_report.row_activated: no plugin with id %d in cache!\n",
+ plugin_id);
+ }
+ else
+ {
+ gtk_text_buffer_get_end_iter(buffer, &iter);
+ gtk_text_buffer_insert(buffer, &iter,
+ g_strdup_printf("Reported by NVT %s (1.3.6.1.4.1.25623.1.0.%d):\n\n",
+ plugin->name, plugin->id), -1);
+ }
+ }
+
gtk_text_buffer_get_end_iter(buffer, &iter);
gtk_text_buffer_insert(buffer, &iter, subs
More information about the Openvas-devel
mailing list