The branch main has been updated by kp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0187875a6c0b68a8026be174f8a0f968fc8ab6ed

commit 0187875a6c0b68a8026be174f8a0f968fc8ab6ed
Author:     Luiz Amaral <[email protected]>
AuthorDate: 2023-11-27 15:53:27 +0000
Commit:     Kristof Provost <[email protected]>
CommitDate: 2023-11-27 20:37:33 +0000

    pfctl: Fix recursive printing of anchor labels
    
    We recently noticed that the recursive printing of labels wasn't working
    like the recursive printing of rules.
    
    When running pfctl -sr -a* we get a listing of all rules, including the
    ones inside anchors. On the other hand, when running pfctl -sl -a*, it
    would only print the labels in the root level, just like without the
    -a* argument.
    
    As in our use-case we are interested on labels only and our labels are
    unique even between anchors, we didn't add indentation or hierarchy to
    the printing.
    
    Sponsored by:   InnoGames GmbH
    Differential Revision:  https://reviews.freebsd.org/D42728
---
 sbin/pfctl/pfctl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c
index b752d87e63c6..2702c701f9cc 100644
--- a/sbin/pfctl/pfctl.c
+++ b/sbin/pfctl/pfctl.c
@@ -1367,6 +1367,14 @@ pfctl_show_rules(int dev, char *path, int opts, enum 
pfctl_show format,
                                    (unsigned long long)rule.bytes[1],
                                    (uintmax_t)rule.states_tot);
                        }
+
+                       if (anchor_call[0] &&
+                           (((p = strrchr(anchor_call, '/')) ?
+                             p[1] == '_' : anchor_call[0] == '_') ||
+                            opts & PF_OPT_RECURSE)) {
+                               pfctl_show_rules(dev, npath, opts, format,
+                                   anchor_call, depth, rule.anchor_wildcard);
+                       }
                        break;
                }
                case PFCTL_SHOW_RULES:

Reply via email to