[prev in list] [next in list] [prev in thread] [next in thread]
List: openvas-cvs
Subject: [Openvas-commits] r29712 - in branches/openvas-manager-7.0: . src
From: scm-commit () wald ! intevation ! org
Date: 2017-09-29 10:12:05
Message-ID: 20170929101205.E643098D42AC () wald ! intevation ! org
[Download RAW message or body]
Author: timopollmeier
Date: 2017-09-29 12:12:05 +0200 (Fri, 29 Sep 2017)
New Revision: 29712
Modified:
branches/openvas-manager-7.0/ChangeLog
branches/openvas-manager-7.0/src/manage_sql.c
Log:
Backport r29710.
* src/manage_sql.c (report_content_for_alert, escalate_2): If a filter
is set in the alert, use it to filter the results.
Modified: branches/openvas-manager-7.0/ChangeLog
===================================================================
--- branches/openvas-manager-7.0/ChangeLog 2017-09-29 10:07:36 UTC (rev 29711)
+++ branches/openvas-manager-7.0/ChangeLog 2017-09-29 10:12:05 UTC (rev 29712)
@@ -1,3 +1,10 @@
+2017-09-29 Timo Pollmeier <timo.pollmeier@greenbone.net>
+
+ Backport r29710.
+
+ * src/manage_sql.c (report_content_for_alert, escalate_2): If a filter
+ is set in the alert, use it to filter the results.
+
2017-09-29 Michael Wiegand <michael.wiegand@greenbone.net>
Backport r29706.
Modified: branches/openvas-manager-7.0/src/manage_sql.c
===================================================================
--- branches/openvas-manager-7.0/src/manage_sql.c 2017-09-29 10:07:36 UTC (rev 29711)
+++ branches/openvas-manager-7.0/src/manage_sql.c 2017-09-29 10:12:05 UTC (rev 29712)
@@ -10785,11 +10785,34 @@
report_format_t *used_report_format)
{
report_format_t report_format;
- char *format_uuid;
+ char *filt_id, *format_uuid;
+ filter_t filter;
+ get_data_t *alert_filter_get;
gchar *report_content;
assert (content);
+ // Get filter
+ filt_id = alert_filter_id (alert);
+ filter = 0;
+ if (filt_id)
+ {
+ if (find_filter_with_permission (filt_id, &filter,
+ "get_filters"))
+ return -1;
+ if (filter == 0)
+ return -3;
+ }
+
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
// Get last report from task if no report is given
if (report == 0)
switch (sql_int64 (&report,
@@ -10849,7 +10872,9 @@
}
// Generate report content
- report_content = manage_report (report, get, report_format,
+ report_content = manage_report (report,
+ alert_filter_get ? alert_filter_get : get,
+ report_format,
notes_details,
overrides_details,
NULL, /* Type. */
@@ -10860,6 +10885,9 @@
report_zone,
host_summary);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
+
if (report_content == NULL)
return -1;
@@ -10928,6 +10956,7 @@
char *name, *notice, *from_address, *filt_id;
gchar *base64, *type, *extension;
filter_t filter;
+ get_data_t *alert_filter_get;
base64 = NULL;
type = NULL;
@@ -10958,6 +10987,15 @@
return -3;
}
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
name = task_name (task);
if (notice && strcmp (notice, "0") == 0)
{
@@ -10985,6 +11023,8 @@
free (name);
free (to_address);
free (from_address);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
return -1;
break;
default: /* Programming error. */
@@ -11012,6 +11052,8 @@
free (name);
free (to_address);
free (from_address);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
return -2;
}
g_free (format_uuid);
@@ -11020,7 +11062,10 @@
term = NULL;
report_zone = NULL;
host_summary = NULL;
- report_content = manage_report (report, get, report_format,
+ report_content = manage_report (report,
+ alert_filter_get
+ ? alert_filter_get : get,
+ report_format,
notes_details,
overrides_details,
NULL, /* Type. */
@@ -11030,6 +11075,8 @@
&term,
&report_zone,
&host_summary);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
if (report_content == NULL)
{
free (event_desc);
@@ -11109,6 +11156,8 @@
free (name);
free (to_address);
free (from_address);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
return -1;
break;
default: /* Programming error. */
@@ -11136,6 +11185,8 @@
free (name);
free (to_address);
free (from_address);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
return -2;
}
g_free (format_uuid);
@@ -11144,7 +11195,11 @@
term = NULL;
report_zone = NULL;
host_summary = NULL;
- report_content = manage_report (report, get, report_format,
+ report_content = manage_report (report,
+ alert_filter_get
+ ? alert_filter_get
+ : get,
+ report_format,
notes_details,
overrides_details,
NULL, /* Type. */
@@ -11154,6 +11209,8 @@
&term,
&report_zone,
&host_summary);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
if (report_content == NULL)
{
g_free (event_desc);
@@ -11246,6 +11303,8 @@
g_free (event_desc);
g_free (generic_desc);
g_free (condition_desc);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
}
free (filt_id);
free (notice);
@@ -11389,6 +11448,7 @@
report_format_t report_format;
int ret;
filter_t filter;
+ get_data_t *alert_filter_get;
if (event == EVENT_NEW_SECINFO || event == EVENT_UPDATED_SECINFO)
{
@@ -11493,7 +11553,19 @@
return -3;
}
- report_content = manage_report (report, get, report_format,
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
+ report_content = manage_report (report,
+ alert_filter_get ? alert_filter_get
+ : get,
+ report_format,
notes_details, overrides_details,
NULL, /* Type. */
&content_length,
@@ -11503,6 +11575,8 @@
NULL,
NULL);
free (filt_id);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
if (report_content == NULL)
{
g_warning ("%s: Empty Report", __FUNCTION__);
@@ -11554,6 +11628,7 @@
report_format_t report_format;
int ret;
filter_t filter;
+ get_data_t *alert_filter_get;
if (event == EVENT_NEW_SECINFO || event == EVENT_UPDATED_SECINFO)
{
@@ -11634,7 +11709,19 @@
return -3;
}
- report_content = manage_report (report, get, report_format,
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
+ report_content = manage_report (report,
+ alert_filter_get ? alert_filter_get
+ : get,
+ report_format,
notes_details, overrides_details,
NULL, /* Type. */
&content_length,
@@ -11643,6 +11730,8 @@
NULL,
NULL,
NULL);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
free (filt_id);
if (report_content == NULL)
{
@@ -11836,6 +11925,7 @@
report_format_t report_format;
int ret;
filter_t filter;
+ get_data_t *alert_filter_get;
if (event == EVENT_NEW_SECINFO || event == EVENT_UPDATED_SECINFO)
{
@@ -11877,7 +11967,19 @@
return -3;
}
- report_content = manage_report (report, get, report_format,
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
+ report_content = manage_report (report,
+ alert_filter_get ? alert_filter_get
+ : get,
+ report_format,
notes_details, overrides_details,
NULL, /* Type. */
&content_length,
@@ -11886,6 +11988,8 @@
NULL,
NULL,
NULL);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
if (report_content == NULL)
return -1;
@@ -11941,6 +12045,7 @@
report_format_t report_format;
int ret;
filter_t filter;
+ get_data_t *alert_filter_get;
if (event == EVENT_NEW_SECINFO || event == EVENT_UPDATED_SECINFO)
{
@@ -12001,7 +12106,19 @@
return -3;
}
- report_content = manage_report (report, get, report_format,
+ if (filter)
+ {
+ alert_filter_get = g_malloc0 (sizeof (get_data_t));
+ alert_filter_get->filt_id = filt_id;
+ alert_filter_get->filter = filter_term (filt_id);
+ }
+ else
+ alert_filter_get = NULL;
+
+ report_content = manage_report (report,
+ alert_filter_get ? alert_filter_get
+ : get,
+ report_format,
notes_details, overrides_details,
NULL, /* Type. */
&content_length,
@@ -12010,6 +12127,8 @@
NULL,
NULL,
NULL);
+ get_data_reset (alert_filter_get);
+ g_free (alert_filter_get);
if (report_content == NULL)
{
g_warning ("Empty Report");
_______________________________________________
Openvas-commits mailing list
Openvas-commits@wald.intevation.org
https://lists.wald.intevation.org/cgi-bin/mailman/listinfo/openvas-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic