[libvirt] [PATCH] nwfilter: drop use of awk
Daniel Veillard
veillard at redhat.com
Tue Sep 4 12:13:39 UTC 2012
On Fri, Aug 31, 2012 at 03:56:58PM -0700, Eric Blake wrote:
> Commit 2a41bc9 dropped a dependency on gawk, but we can go one step
> further and avoid awk altogether.
>
> * src/nwfilter/nwfilter_ebiptables_driver.c
> (iptablesLinkIPTablesBaseChain): Simplify command.
> (ebiptablesDriverInit, ebiptablesDriverShutdown): Drop awk probe.
> ---
>
> Caveat - I was not set up to test this via actual nwfilter operations,
> so it needs a thorough testing review.
>
> src/nwfilter/nwfilter_ebiptables_driver.c | 14 ++++----------
> 1 file changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c
> index 034e6c4..8ffe737 100644
> --- a/src/nwfilter/nwfilter_ebiptables_driver.c
> +++ b/src/nwfilter/nwfilter_ebiptables_driver.c
> @@ -84,7 +84,6 @@ static char *ebtables_cmd_path;
> static char *iptables_cmd_path;
> static char *ip6tables_cmd_path;
> static char *grep_cmd_path;
> -static char *awk_cmd_path;
>
> #define PRINT_ROOT_CHAIN(buf, prefix, ifname) \
> snprintf(buf, sizeof(buf), "libvirt-%c-%s", prefix, ifname)
> @@ -565,12 +564,11 @@ static int iptablesLinkIPTablesBaseChain(virBufferPtr buf,
> int stopOnError)
> {
> virBufferAsprintf(buf,
> - "res=$($IPT -L %s -n --line-number | "
> - "%s \" %s \")\n"
> + "res=$($IPT -L %s -n --line-number | %s '%s')\n"
> "if [ $? -ne 0 ]; then\n"
> " $IPT -I %s %d -j %s\n"
> "else\n"
> - " r=$(echo $res | %s '{print $1}')\n"
> + " set dummy $res; r=$2\n"
> " if [ \"${r}\" != \"%d\" ]; then\n"
> " " CMD_DEF("$IPT -I %s %d -j %s") CMD_SEPARATOR
> " " CMD_EXEC
> @@ -582,11 +580,9 @@ static int iptablesLinkIPTablesBaseChain(virBufferPtr buf,
> " fi\n"
> "fi\n",
>
> - syschain,
> - grep_cmd_path, udchain,
> + syschain, grep_cmd_path, udchain,
>
> syschain, pos, udchain,
> - awk_cmd_path,
>
> pos,
>
> @@ -4295,7 +4291,6 @@ ebiptablesDriverInit(bool privileged)
> if (virMutexInit(&execCLIMutex) < 0)
> return -EINVAL;
>
> - awk_cmd_path = virFindFileInPath("awk");
> grep_cmd_path = virFindFileInPath("grep");
>
> /*
> @@ -4311,7 +4306,7 @@ ebiptablesDriverInit(bool privileged)
>
> /* ip(6)tables support needs awk & grep, ebtables doesn't */
> if ((iptables_cmd_path != NULL || ip6tables_cmd_path != NULL) &&
> - (!grep_cmd_path || !awk_cmd_path)) {
> + !grep_cmd_path) {
> VIR_ERROR(_("essential tools to support ip(6)tables "
> "firewalls could not be located"));
> VIR_FREE(iptables_cmd_path);
> @@ -4333,7 +4328,6 @@ ebiptablesDriverInit(bool privileged)
> static void
> ebiptablesDriverShutdown(void)
> {
> - VIR_FREE(awk_cmd_path);
> VIR_FREE(grep_cmd_path);
> VIR_FREE(ebtables_cmd_path);
> VIR_FREE(iptables_cmd_path);
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list