[ovs-dev] [PATCH 2/5] system-common-macros: Don't use bash to exec in ns.

Joe Stringer joestringer at nicira.com
Tue Aug 11 16:55:15 UTC 2015


This looks like a reasonable solution, I'll have a play around with it.

On 11 August 2015 at 05:25, Daniele Di Proietto <diproiettod at vmware.com> wrote:
> I'm not an autoconf expert, but having NS_CHECK_EXEC and
> NS_CHECK_EXEC_UNQUOTED for this purpose might be confusing, since
> there already are AT_CHECK and AT_CHECK_UNQUOTED, and the "UNQUOTED"
> refers to comparison text.
>
> How about this?
>
> # NS_EXEC([namespace], [command])
> #
> # Execute 'command' in 'namespace'
> m4_define([NS_EXEC],
>     [ip netns exec $1 sh << NS_EXEC_HEREDOC
> $2
> NS_EXEC_HEREDOC
> ])
>
>
>
> On 10/08/2015 21:17, "Joe Stringer" <joestringer at nicira.com> wrote:
>
>>Hmm. The problem I was having is that if we wrap 'command' in quotes
>>here, and 'command' itself includes quotes (eg, command='echo "foo" |
>>bar'), then rather than quoting "foo", the command ends up quoting
>>everything up to 'foo', then unquoting 'foo', then quoting everything
>>after 'foo'. The ICMP related test in the conntrack branch has an
>>instance of this.
>>
>>Maybe the right solution is to have two variants: NS_CHECK_EXEC() and
>>NS_CHECK_EXEC_UNQUOTED(). I've seen this other places in OVS
>>testsuite.
>>
>>On 10 August 2015 at 11:40, Daniele Di Proietto <diproiettod at vmware.com>
>>wrote:
>>> I guess you need this to use quotes("") inside 'command'.
>>>
>>> One effect of this change is that if 'command' contains a pipe
>>> (or &&, or ||) just the first command will be executed inside
>>> the namespace.  I'm not sure if it's a big problem.  What do you
>>> think?
>>>
>>> On 08/08/2015 00:28, "Joe Stringer" <joestringer at nicira.com> wrote:
>>>
>>>>ip netns exec $namespace $command doesn't need to use bash to execute
>>>>the command. Remove it.
>>>>
>>>>Signed-off-by: Joe Stringer <joestringer at nicira.com>
>>>>---
>>>> tests/system-common-macros.at | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>>diff --git a/tests/system-common-macros.at
>>>>b/tests/system-common-macros.at
>>>>index 1321e58..fdc2bc7 100644
>>>>--- a/tests/system-common-macros.at
>>>>+++ b/tests/system-common-macros.at
>>>>@@ -25,7 +25,7 @@ m4_define([ADD_NAMESPACES],
>>>> #
>>>> # Execute 'command' in 'namespace'
>>>> m4_define([NS_EXEC],
>>>>-    [ip netns exec $1 bash -c "$2"]
>>>>+    [ip netns exec $1 $2]
>>>> )
>>>>
>>>> # NS_CHECK_EXEC([namespace], [command], other_params...)
>>>>--
>>>>2.1.4
>>>>
>>>
>



More information about the dev mailing list