[PATCH] firewall-cmd: --list=all

Thomas Woerner twoerner at redhat.com
Wed Mar 7 15:55:09 UTC 2012


On 03/07/2012 11:46 AM, Jiri Popelka wrote:
> examples:
>
> (list all info about zone "home")
> firewall-cmd --zone=home --list=all
>
> (list all info about default zone)
> firewall-cmd --list=all
> ---
>   TODO             |    1 -
>   src/firewall-cmd |   23 +++++++++++++++++++++--
>   2 files changed, 21 insertions(+), 3 deletions(-)
>
> diff --git a/TODO b/TODO
> index ad00efd..4280f15 100644
> --- a/TODO
> +++ b/TODO
> @@ -1,3 +1,2 @@
> -- firewall-cmd --list --zone=home
>   - add documentation about all config files
>   - add man pages
> diff --git a/src/firewall-cmd b/src/firewall-cmd
> index d7b1951..0aff6ed 100755
> --- a/src/firewall-cmd
> +++ b/src/firewall-cmd
> @@ -51,7 +51,7 @@ def usage():
>       --enable [--timeout=<seconds>]<masquerade>
>       --disable<masquerade>
>       --query<action>  |<masquerade>
> -    --list=<action>
> +    --list=<action>  | all
>     Action:
>       --service=<service>
>       --port=<port>[-<port>]/<protocol>
> @@ -330,7 +330,7 @@ try:
>                   elif mode == "query":
>                       sys.exit(not fw.queryForwardPort(zone, port, protocol,
>                                                        toport, toaddr))
> -
> +
>           # block icmp
>           elif action == "icmp-block":
>               if mode == "list":
> @@ -345,6 +345,25 @@ try:
>               elif mode == "query":
>                   sys.exit(not fw.queryIcmpBlock(zone, value))
>
> +        elif (action == "all"):
> +            if mode == "list":
> +                print("zone: " + (zone if zone != "" else fw.getDefaultZone()))
> +                l = fw.getInterfaces(zone)
> +                if len(l)>  0:
> +                    print("interfaces: " + ", ".join(l))
> +                l = fw.getServices(zone)
> +                if len(l)>  0:
> +                    print("services: " + ", ".join(l))
> +                l = fw.getPorts(zone)
> +                if len(l)>  0:
> +                    print("ports: " + ", ".join(["%s/%s" % (port[0], port[1]) for port in l]))
> +                l = fw.getForwardPorts(zone)
> +                if len(l)>  0:
> +                    print("forward-ports: " + "\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (interface, port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l]))
> +                l = fw.getIcmpBlocks(zone)
> +                if len(l)>  0:
> +                    print("icmp-blocks: " + ", ".join(l))
> +
>   except dbus.DBusException, e:
>       if e._dbus_error_name == 'org.freedesktop.DBus.Error.ServiceUnknown':
>           print("FirewallD is probably not running.")
ACK


More information about the firewalld-devel mailing list