xend: enable environment passing in xPopen3

In changeset 19990:38dd208e1d95 a new parameter 'env' was added to
xPopen3, but no code was added to actually pass the environment down to
execvpe. Also, the new code was unreachable.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Olaf Hering committed 2012-11-23 11:06:15 +00:00
1 parent b1f2c77ffd
commit 4369b2cd6f
1 file changed
+2 -3
+2 -3
View File
@@ -104,7 +104,7 @@ class xPopen3:
os.dup2(c2pwrite, 1)
if capturestderr:
os.dup2(errin, 2)
self._run_child(cmd)
self._run_child(cmd, env)
os.close(p2cread)
self.tochild = os.fdopen(p2cwrite, 'w', bufsize)
os.close(c2pwrite)
@@ -116,7 +116,7 @@ class xPopen3:
self.childerr = None
_active.append(self)
def _run_child(self, cmd):
def _run_child(self, cmd, env):
if isinstance(cmd, basestring):
cmd = ['/bin/sh', '-c', cmd]
for i in range(3, MAXFD):
@@ -127,7 +127,6 @@ class xPopen3:
except OSError:
pass
try:
os.execvp(cmd[0], cmd)
if env is None:
os.execvp(cmd[0], cmd)
else:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.