From e8a93f46a5ad378f7a2e9b21d9ae662ccff305db Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 4 Jun 2009 11:07:57 +0000 Subject: Baptiste Daroussin: 27029: new pfctl completion --- Completion/BSD/Command/.distfiles | 1 + Completion/BSD/Command/_pfctl | 96 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 Completion/BSD/Command/_pfctl (limited to 'Completion/BSD/Command') diff --git a/Completion/BSD/Command/.distfiles b/Completion/BSD/Command/.distfiles index 0fc183522..fb17240f8 100644 --- a/Completion/BSD/Command/.distfiles +++ b/Completion/BSD/Command/.distfiles @@ -7,6 +7,7 @@ _cvsup _fetch _freebsd-update _kld +_pfctl _portaudit _portlint _portsnap diff --git a/Completion/BSD/Command/_pfctl b/Completion/BSD/Command/_pfctl new file mode 100644 index 000000000..bb185f463 --- /dev/null +++ b/Completion/BSD/Command/_pfctl @@ -0,0 +1,96 @@ +#compdef pfctl + +local pfctl_flush_modifiers pfctl_optimizer_level pfctl_show_modifiers pfctl_tables_command pfctl_debug_level + +pfctl_flush_modifiers=( + 'all:Flush all' + 'info:Flush the filter information' + 'nat:Flush the NAT rules' + 'osfp:Flush the passive operating system fingerprints' + 'queue:Flush the queue rules' + 'rules:Flush the filter rules' + 'state:Flush the stable table' + 'Sources:Flush the source tracking table' + 'Tables:Flush the tables' +) + +pfctl_show_modifiers=( + 'nat:Show the currently loaded NAT rules' + 'queue:Show the currently loaded queue rules' + 'rules:Show the currently loaded filter rules' + 'Anchors:Show the currently loaded anchors directly attached to the main ruleset' + 'state:Show the contents of the state table' + 'Sources:Show the contents of the source tracking table' + 'info:Show filter information' + 'labels:Show per-rule statistics of filter rules with labels' + 'timeouts:Show the current global timeouts' + 'memory:Show the current pool memory hard limits' + 'Tables:Show the list of tables' + 'osfp:Show the list of operating system fingerprints' + 'Interfaces:Show the list of interfaces and interface drivers available to PF' + 'all:Show all except for the lists of interfaces and operating system fingerprints' +) + +pfctl_optimizer_level=( + 'none:Disable the ruleset optimizer' + 'basic:Enable basic ruleset optimizations' + 'profile:Enable basic ruleset optimizations with profiling' +) +pfctl_tables_command=( + 'kill:Kill a table' + 'flush:Flush all addresses of a table' + 'add:Add one or more addresses in a table' + 'delete:Delete one or more addresses from a table' + 'expire:Delete addresses which had their statistics cleared more than number seconds ago' + 'replace:Replace the addresses of the table' + 'show:Show the content (addresses) of a table' + 'test:Test if the given addresses match a table' + 'zero:Clear all the statistics of a table' + 'load:Load only the table definitions from pf.conf(5)' +) +pfctl_debug_level=( + "none:Don\'t generate debug messages" + 'urgent:Generate debug messages only for serious errors' + 'misc:Generate debug messages for various errors' + 'loud:Generate debug messages for common conditions' +) +_iface() { + local pfctl_iface + pfctl_iface=($(pfctl -s Interfaces)) + compadd $pfctl_iface +} +_tables() { + local pfctl_tables + pfctl_tables=($(pfctl -s Tables)) + compadd $pfctl_tables +} +# TODO: +# Missing -a +# +_arguments -s \ + '-F[Flush the filter parameters specified by modifier]:modifier:(($pfctl_flush_modifiers))' \ + '-A[Load only the queue rules present in the rule file]' \ + '-D[Define macro to be set to value]:macro:' \ + '-d[Disable the packet filter]' \ + '-e[Enable the packet filter]' \ + '-f[Load the rules contained in a file]:configuration file:_files' \ + '-g[Include output helpful for debugging]' \ + '-h[Help]' \ + '-i[Restrict the operation to the given interface]:interface:_iface' \ + '-K[Kill all of the source tracking entries originating from the specified host or network]:host or network:_hosts' \ + '-k[Kill all of the state entries originating from the specified host or network]:host or network:_hosts' \ + '-m[Merge in explicitly given options]' \ + '-N[Load only the NAT rules present in the rule file]' \ + '-n[Do not actually load rules, just parse them]' \ + '-O[Load only the options present in the rule file]' \ + '-o[Control the ruleset optimizer]:level:(($pfctl_optimizer_level))' \ + '-p[Use the device file device instead of the default /dev/pf]:device:_files' \ + '-q[Only print errors and warnings]' \ + '-R[Load only the filter rules present in the rule file]' \ + '-r[Perform reverse DNS lookups on states when displaying them]' \ + '-s[Show the filter parameters specified by modifier]:modifier:(($pfctl_show_modifiers ))' \ + '-T[Specify the command to apply to the table]:command:(($pfctl_tables_command))' \ + '-t[Specify the name of the table]:table:_tables' \ + '-v[Produce more verbose output]' \ + '-x[Set the debug level]:debug level:(($pfctl_debug_level))' \ + '-z[Clear per-rule statistics]' -- cgit 1.4.1