]> git.sur5r.net Git - i3/i3/commitdiff
tests: SocketActivation: only close() and dup2() if fileno(socket) != 3
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Oct 2011 22:31:06 +0000 (23:31 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Oct 2011 22:31:06 +0000 (23:31 +0100)
testcases/lib/SocketActivation.pm

index 92e514d596448146fc7763b7de908ff3f95257a8..70bbec0508fa4bf40438712d300feb31c75fcffd 100644 (file)
@@ -56,8 +56,12 @@ sub activate_i3 {
         $ENV{DISPLAY} = $args{display};
         $^F = 3;
 
-        POSIX::close(3);
-        POSIX::dup2(fileno($socket), 3);
+        # If the socket does not use file descriptor 3 by chance already, we
+        # close fd 3 and dup2() the socket to 3.
+        if (fileno($socket) != 3) {
+            POSIX::close(3);
+            POSIX::dup2(fileno($socket), 3);
+        }
 
         # now execute i3
         my $i3cmd = abs_path("../i3") . " -V -d all --disable-signalhandler";