From 6efadf607d957fe4d2210c8ec2ca0b80b0241a95 Mon Sep 17 00:00:00 2001 From: Packit Date: Aug 19 2020 12:58:48 +0000 Subject: Apply patch 0002-Rsyslog-support-multiple-actions-in-filters-and-sele.patch patch_name: 0002-Rsyslog-support-multiple-actions-in-filters-and-sele.patch location_in_specfile: 2 present_in_specfile: true --- diff --git a/lenses/rsyslog.aug b/lenses/rsyslog.aug index 7b9f7dc..29ff9b1 100644 --- a/lenses/rsyslog.aug +++ b/lenses/rsyslog.aug @@ -65,11 +65,17 @@ let hostname = [ label "hostname" . ( Syslog.plus | [ Build.xchgs "-" "reverse" ] ) . Syslog.hostnames . Util.eol . Syslog.entries ] +(* View: actions *) +let actions = + let prop_act = [ label "action" . action ] + in let act_sep = del /[ \t]*\n&[ \t]*/ "\n& " + in Build.opt_list prop_act act_sep + (* View: entry An entry contains selectors and an action *) let entry = [ label "entry" . Syslog.selectors . Syslog.sep_tab . - [ label "action" . action ] . Util.eol ] + actions . Util.eol ] (* View: prop_filter Parses property-based filters, which start with ":" and the property name *) @@ -78,9 +84,8 @@ let prop_filter = in let prop_name = [ Util.del_str ":" . label "property" . store Rx.word ] in let prop_oper = [ label "operation" . store /[A-Za-z!-]+/ ] in let prop_val = [ label "value" . Quote.do_dquote (store /[^\n"]*/) ] - in let prop_act = [ label "action" . action ] in [ label "filter" . prop_name . sep . prop_oper . sep . prop_val . - Sep.space . prop_act . Util.eol ] + Sep.space . actions . Util.eol ] let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter )* diff --git a/lenses/tests/test_rsyslog.aug b/lenses/tests/test_rsyslog.aug index 9011a2b..e83613a 100644 --- a/lenses/tests/test_rsyslog.aug +++ b/lenses/tests/test_rsyslog.aug @@ -222,3 +222,40 @@ test Rsyslog.lns get "*.* ?DynamicFile\n" = { "dynamic" = "DynamicFile" } } } + +(* Multiple actions in filters and selectors *) +test Rsyslog.lns get ":msg, startswith, \"iptables:\" -/var/log/iptables.log +& ~ +# Save boot messages also to boot.log +local7.* /var/log/boot.log +local3.err /var/log/nfsen/nfsenlog +& /var/log/also.log +\n" = + { "filter" + { "property" = "msg" } + { "operation" = "startswith" } + { "value" = "iptables:" } + { "action" + { "no_sync" } + { "file" = "/var/log/iptables.log" } } + { "action" + { "discard" } } + } + { "#comment" = "Save boot messages also to boot.log" } + { "entry" + { "selector" + { "facility" = "local7" } + { "level" = "*" } } + { "action" + { "file" = "/var/log/boot.log" } } + } + { "entry" + { "selector" + { "facility" = "local3" } + { "level" = "err" } } + { "action" + { "file" = "/var/log/nfsen/nfsenlog" } } + { "action" + { "file" = "/var/log/also.log" } } } + { } +