chiark / gitweb /
fishdescriptor: Calculate target_root earlier and pass to _sock_dir
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 20 Nov 2018 11:30:33 +0000 (11:30 +0000)
committerIan Jackson <ian.jackson@eu.citrix.com>
Tue, 20 Nov 2018 11:32:35 +0000 (11:32 +0000)
No functional change.

We are going to use this in a moment.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
fishdescriptor/py/fishdescriptor/fish.py

index 9d2d3c6..05f89e6 100644 (file)
@@ -114,7 +114,7 @@ class Donor():
             if oe.errno != os.errno.ENOENT: raise oe
             return False
 
-    def _sock_dir(d, target_euid):
+    def _sock_dir(d, target_euid, target_root):
         run_dir = '/run/user/%d' % target_euid
         if d._exists(run_dir):
             return run_dir + '/fishdescriptor'
@@ -133,16 +133,16 @@ class Donor():
     def fish(d, fds):
         # -> list of fds in our process
 
+        target_root = '/proc/%d/root' % d.pid
+        if not d._exists(target_root):
+            target_root = ''
+
         euid = d._geteuid()
-        sockdir = d._sock_dir(euid)
+        sockdir = d._sock_dir(euid, target_root)
         d.mkdir(sockdir)
 
         sockname = '%s/%s,%d' % (sockdir, os.uname().nodename, d.pid)
 
-        target_root = '/proc/%d/root' % d.pid
-        if not d._exists(target_root):
-            target_root = ''
-
         our_sockname = target_root + sockname
 
         s = None