⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prefs_report.c

📁 大国补丁后的nessus2.2.8的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
    n(restriction_2_key), n(restriction_2_value),    n(restriction_3_key), n(restriction_3_value)));  fill_list(list, subset);  subset_free(subset);}static voidreports_clear(textview)  GtkWidget *textview;{  GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));  gtk_text_buffer_set_text(buffer, "", -1);}static voidreports_fill(ctrls, textview)  struct arglist *ctrls;  GtkWidget *textview;{  char *restriction_1_key = g_object_get_data(G_OBJECT(textview),	"restriction_1_key");  char *restriction_1_value = g_object_get_data(G_OBJECT(textview),	"restriction_1_value");  char *restriction_2_key = g_object_get_data(G_OBJECT(textview),	"restriction_2_key");  char *restriction_2_value = g_object_get_data(G_OBJECT(textview),	"restriction_2_value");  char *restriction_3_key = g_object_get_data(G_OBJECT(textview),	"restriction_3_key");  char *restriction_3_value = g_object_get_data(G_OBJECT(textview),	"restriction_3_value");  char *restriction_4_key = g_object_get_data(G_OBJECT(textview),	"restriction_4_key");  char *restriction_4_value = g_object_get_data(G_OBJECT(textview),	"restriction_4_value");  char *sort_key = g_object_get_data(G_OBJECT(textview),	"sort_key");  struct subset * subset;  struct subset * walk;  int be = (int)arg_get_value(ctrls, "BE");  GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));  GtkTextIter iter;  if (be < 0) return;  subset = x(query_backend(be,    "SELECT %s,severity FROM results"    " WHERE %s = '%s' AND %s = '%s' AND %s = '%s' AND %s = '%s'",    sort_key, n(restriction_1_key), n(restriction_1_value),    n(restriction_2_key), n(restriction_2_value),    n(restriction_3_key), n(restriction_3_value),    n(restriction_4_key), n(restriction_4_value)));  walk = subset;  while(walk)  {    gtk_text_buffer_get_end_iter(buffer, &iter);    gtk_text_buffer_insert(buffer, &iter, subset_value(walk), -1);    walk = subset_next(walk);    if(walk)    {      gtk_text_buffer_get_end_iter(buffer, &iter);      gtk_text_buffer_insert(buffer, &iter, "\n"	  "=================================="	  "=================================="	  "\n", -1);    }  }  subset_free(subset);}/* * Callbacks */static voidon_menu_item_subnet_selected(item, list)  GtkMenuItem * item;  GtkWidget  * list;{  char * old_key = gtk_object_get_data(GTK_OBJECT(list), "sort_key");  char * new_key = gtk_object_get_data(GTK_OBJECT(item), "sort_key");  char * k;  int idx_list = -1, idx_this_list = -1;  int i;  if(!strcmp(old_key, new_key))  {    return;  }  for(i=0;i<4;i++)  {    if(Lists[i] == list) {      idx_this_list = i;      break;    }  }  for(i=0;i<4;i++)  {    k = gtk_object_get_data(GTK_OBJECT(Lists[i]), "sort_key");     if((new_key != NULL) && (k != NULL) && (strcmp(new_key, k) == 0))    {      idx_list = i;      break;    }  }  if(idx_list >= 0)  {    func_fill_t fill_a, fill_b;    int min;    struct arglist * ctrls;    GtkWidget * optionmenu;    GtkWidget * t;    gtk_object_set_data(GTK_OBJECT(Lists[idx_this_list]), "sort_key", new_key);    gtk_object_set_data(GTK_OBJECT(Lists[idx_list]), "sort_key", old_key);    min = idx_this_list > idx_list ? idx_list:idx_this_list;    fill_a  = (func_fill_t)              gtk_object_get_data(GTK_OBJECT(Lists[idx_this_list]), "fill");    fill_b  = (func_fill_t)              gtk_object_get_data(GTK_OBJECT(Lists[idx_list]), "fill");    ctrls = (struct arglist *)gtk_object_get_data(GTK_OBJECT(Lists[min]),                                                  "ctrls");    /* printf("Changing option for %d\n", idx_list); */    optionmenu = gtk_object_get_data(GTK_OBJECT(Lists[idx_list]), "optionmenu");    gtk_option_menu_set_history(GTK_OPTION_MENU(optionmenu), idx_this_list);    empty_list(Lists[idx_list]);    empty_list(Lists[idx_this_list]);    if(fill_a)fill_a(ctrls, Lists[idx_this_list]);    if(fill_b)fill_b(ctrls, Lists[idx_list]);    t = Lists[idx_list];    Lists[idx_list] = Lists[idx_this_list];    Lists[idx_this_list] = t;  }}static voidon_subnets_list_selection_changed(list, ctrls)  GtkList *list;  struct arglist * ctrls;{  char * sort_value;  GtkWidget * hosts = gtk_object_get_data(GTK_OBJECT(list), "hosts_list");  char * sort_key = gtk_object_get_data(GTK_OBJECT(list), "sort_key");  empty_list(hosts);  if(list->selection)  {    sort_value = gtk_object_get_data(GTK_OBJECT(list->selection->data),                                     sort_key);    replace_data(GTK_OBJECT(hosts), "restriction_1_key", estrdup(sort_key));    replace_data(GTK_OBJECT(hosts), "restriction_1_value", estrdup(sort_value));    if(sort_value)hosts_fill(ctrls, hosts);  }}static voidon_hosts_list_selection_changed(list, ctrls)  GtkList *list;  struct arglist * ctrls;{  char * sort_value;  char * sort_key     = gtk_object_get_data(GTK_OBJECT(list), "sort_key");  GtkWidget * ports = gtk_object_get_data(GTK_OBJECT(list), "ports_list");  char * restriction_1_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_1_key");  char * restriction_1_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_1_value");  empty_list(ports);  if(list->selection)  {    sort_value = gtk_object_get_data(GTK_OBJECT(list->selection->data),                                    sort_key);    /* printf("host> set restriction1 = %s (%s)\n", restriction_1_key,restriction_1_value); */    replace_data(GTK_OBJECT(ports), "restriction_1_key",                 estrdup(restriction_1_key));    replace_data(GTK_OBJECT(ports), "restriction_1_value",                 estrdup(restriction_1_value));    replace_data(GTK_OBJECT(ports), "restriction_2_key", estrdup(sort_key));    replace_data(GTK_OBJECT(ports), "restriction_2_value", estrdup(sort_value));    if(sort_value)ports_fill(ctrls, ports);  }}static voidon_ports_list_selection_changed(list, ctrls)  GtkList * list;  struct arglist * ctrls;{  char * sort_value;  char * sort_key = gtk_object_get_data(GTK_OBJECT(list), "sort_key");  GtkWidget * severity = gtk_object_get_data(GTK_OBJECT(list), "severity_list");  char * restriction_1_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_1_key");  char * restriction_1_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_1_value");  char * restriction_2_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_2_key");  char * restriction_2_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_2_value");  empty_list(severity);  if(list->selection)  {    sort_value = gtk_object_get_data(GTK_OBJECT(list->selection->data),                                     sort_key);    replace_data(GTK_OBJECT(severity), "restriction_1_key",                 estrdup(restriction_1_key));    replace_data(GTK_OBJECT(severity), "restriction_1_value",                 estrdup(restriction_1_value));   replace_data(GTK_OBJECT(severity), "restriction_2_key",                estrdup(restriction_2_key));   replace_data(GTK_OBJECT(severity), "restriction_2_value",                estrdup(restriction_2_value));   replace_data(GTK_OBJECT(severity), "restriction_3_key", estrdup(sort_key));   replace_data(GTK_OBJECT(severity), "restriction_3_value",                estrdup(sort_value));   if(sort_value)severity_fill(ctrls, severity);  }}static voidon_severity_list_selection_changed(list, ctrls)  GtkList * list;  struct arglist * ctrls;{  char * sort_value;  char * sort_key     = gtk_object_get_data(GTK_OBJECT(list), "sort_key");  GtkWidget * reports = gtk_object_get_data(GTK_OBJECT(list), "reports_list");  char * restriction_1_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_1_key");  char * restriction_1_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_1_value");  char * restriction_2_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_2_key");  char * restriction_2_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_2_value");  char * restriction_3_key = gtk_object_get_data(GTK_OBJECT(list),                                                 "restriction_3_key");  char * restriction_3_value = gtk_object_get_data(GTK_OBJECT(list),                                                   "restriction_3_value");  reports_clear(reports);  if(list->selection)  {    sort_value = gtk_object_get_data(GTK_OBJECT(list->selection->data),                                     sort_key);   replace_data(GTK_OBJECT(reports), "restriction_1_key",                estrdup(restriction_1_key));   replace_data(GTK_OBJECT(reports), "restriction_1_value",                estrdup(restriction_1_value));   replace_data(GTK_OBJECT(reports), "restriction_2_key",                estrdup(restriction_2_key));   replace_data(GTK_OBJECT(reports), "restriction_2_value",                estrdup(restriction_2_value));   replace_data(GTK_OBJECT(reports), "restriction_3_key",                estrdup(restriction_3_key));   replace_data(GTK_OBJECT(reports), "restriction_3_value",                estrdup(restriction_3_value));   replace_data(GTK_OBJECT(reports), "restriction_4_key", estrdup(sort_key));   replace_data(GTK_OBJECT(reports), "restriction_4_value",                estrdup(sort_value));   if(sort_value)reports_fill(ctrls, reports);   }}/* * Build a vbox element with the report text widget. * be is a handle id of the backend. The backend functions * know what to do with it. */struct arglist *prefs_dialog_report(void){  struct arglist * ctrls = emalloc(sizeof(struct arglist));  GtkWidget * vbox;  GtkTooltips * tooltips;  GtkWidget *hpaned1;  GtkWidget *vpaned1;  GtkWidget *vbox2;  GtkWidget *subnet;  GtkWidget *subnet_menu;  GtkWidget *glade_menuitem;  GtkWidget *scrolled_window_subnet;  GtkWidget *list_subnets;  GtkWidget *vbox3;  GtkWidget *optionmenu2;  GtkWidget *optionmenu2_menu;  GtkWidget *hosts_scrolled_window;  GtkWidget *list_hosts;  GtkWidget *vpaned2;  GtkWidget *hpaned2;  GtkWidget *vbox4;  GtkWidget *optionmenu3;  GtkWidget *optionmenu3_menu;  GtkWidget *scrolledwindow3;  GtkWidget *list_ports;  GtkWidget *vbox5;  GtkWidget *optionmenu4;  GtkWidget *optionmenu4_menu;  GtkWidget *scrolledwindow4;  GtkWidget *list_severity;  GtkWidget *vbox6;  GtkWidget *scrolledwindow5;  GtkWidget *list_reports;  GtkWidget *hbox;  GtkWidget *scan_timestamps;  tooltips = gtk_tooltips_new();  arg_add_value(ctrls, "BE", ARG_INT, sizeof(int), (void *)-1);  vbox = gtk_vbox_new(FALSE, FALSE);  arg_add_value(ctrls, "VBOX", ARG_PTR, -1, vbox);  gtk_widget_show(vbox);  Lists[0] = list_subnets = gtk_list_new ();  Lists[1] = list_hosts   = gtk_list_new ();  Lists[2] = list_ports   = gtk_list_new ();  Lists[3] = list_severity= gtk_list_new ();  list_reports = gtk_text_view_new();  gtk_text_view_set_editable(GTK_TEXT_VIEW(list_reports), FALSE);  scan_timestamps = gtk_label_new("Foo");  gtk_widget_show(scan_timestamps);  gtk_box_pack_end(GTK_BOX(vbox), scan_timestamps, FALSE, FALSE, 2);  arg_add_value(ctrls, "SCAN_TIMESTAMPS", ARG_PTR, -1, scan_timestamps);  hpaned1 = gtk_hpaned_new ();  gtk_widget_ref(hpaned1);  gtk_paned_set_position(GTK_PANED(hpaned1), 200);  gtk_object_set_data_full(GTK_OBJECT (vbox), "hpaned1", hpaned1,                           (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (hpaned1);  gtk_box_pack_start(GTK_BOX(vbox), hpaned1, TRUE, TRUE, 0);  hbox = gtk_hbox_new(TRUE, 10);  gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);  gtk_widget_show(hbox);  vpaned1 = gtk_vpaned_new ();  gtk_widget_ref(vpaned1);  gtk_paned_set_position(GTK_PANED(vpaned1), 200);  gtk_object_set_data_full(GTK_OBJECT (vbox), "vpaned1", vpaned1,                           (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show(vpaned1);  gtk_container_add(GTK_CONTAINER (hpaned1), vpaned1);  vbox2 = gtk_vbox_new(FALSE, 0);  gtk_widget_ref(vbox2);  gtk_object_set_data_full(GTK_OBJECT(vbox), "vbox2", vbox2,                           (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show(vbox2);  gtk_container_add(GTK_CONTAINER (vpaned1), vbox2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -