]> git.sur5r.net Git - i3/i3/commitdiff
tests: get the socket path from the X11 atom I3_SOCKET_PATH
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 25 Jul 2011 11:35:56 +0000 (13:35 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 25 Jul 2011 11:35:56 +0000 (13:35 +0200)
The hard-coded socket paths are not useful when running the test suite in
parallel.

33 files changed:
testcases/i3-test.config
testcases/t/02-fullscreen.t
testcases/t/06-focus.t
testcases/t/08-focus-stack.t
testcases/t/10-dock.t
testcases/t/11-goto.t
testcases/t/14-client-leader.t
testcases/t/15-ipc-workspaces.t
testcases/t/16-nestedcons.t
testcases/t/24-move.t
testcases/t/28-open-order.t
testcases/t/29-focus-after-close.t
testcases/t/30-close-empty-split.t
testcases/t/31-stacking-order.t
testcases/t/32-move-workspace.t
testcases/t/33-size-hints.t
testcases/t/36-floating-ws-empty.t
testcases/t/37-floating-unmap.t
testcases/t/38-floating-attach.t
testcases/t/39-ws-numbers.t
testcases/t/40-focus-lost.t
testcases/t/50-regress-dock-restart.t
testcases/t/54-regress-multiple-dock.t
testcases/t/55-floating-split-size.t
testcases/t/56-fullscreen-focus.t
testcases/t/57-regress-fullscreen-level-up.t
testcases/t/58-wm_take_focus.t
testcases/t/61-regress-borders-restart.t
testcases/t/62-regress-dock-urgent.t
testcases/t/66-assign.t
testcases/t/67-workspace_layout.t
testcases/t/70-force_focus_wrapping.t
testcases/t/lib/i3test.pm

index ae9c0a98d40c2c491d9b54f4de9d222b6e5b13c2..4f59205ecdb18f8334e13098fde0ce8abf56ab0a 100644 (file)
@@ -8,9 +8,6 @@ font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
 # Use Mouse+Mod1 to drag floating windows to their wanted position
 floating_modifier Mod1
 
-# temporary path during development
-ipc-socket /tmp/nestedcons
-
 # Open empty container
 bindsym Mod1+Shift+Return open
 
index 258eec99a4bcc2fbb307168955f211cad2678102..34e5364e495c821255937cf82d6360b980be96d4 100644 (file)
@@ -5,7 +5,7 @@ use i3test;
 use X11::XCB qw(:all);
 use List::Util qw(first);
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 826588d50c65bbc59dac90feecafcf8d46d39b4d..d357c8a9de2d5009d20c93cc7d37b8793e90ff75 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 
 my $x = X11::XCB::Connection->new;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 my $tmp = fresh_workspace;
 
 #####################################################################
index 8a408267a9aedea2203406980a4b7f6536e2ce12..f8143979164e777cc19b5e6f9b5ce3d370eb6652 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 
 my $x = X11::XCB::Connection->new;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 fresh_workspace;
 
 cmd 'split h';
index 5fa35e1a29f64557cc9bba47bec7c81f6256762e..d4da82451560fcb843f09e36e08eb0ba9bbe661e 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 #####################################################################
 # verify that there is no dock window yet
index ed8c43586133d0ca15e653a0919e74a3ac526655..542dc828bd146fa316fc881493f603152ada0249 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 
 my $x = X11::XCB::Connection->new;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 my $tmp = fresh_workspace;
 
 cmd 'split h';
index d5675e46b9872c7c058dad7d8f7cbc7833fa9c56..98978eb3a76ed50343883d66104ca99d09e4cb50 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 0b4f819a36591f56bc0fc3c5f5f206444908bfa1..085163b29419cc17bdf8c5f282aec9761969894e 100644 (file)
@@ -4,7 +4,7 @@
 use i3test;
 use List::MoreUtils qw(all);
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 ####################
 # Request workspaces
index 7763ce797ce6b428ff4c70690512b6c062f1d715..f9d27262793630eda80abf07598240fb3f3e7754 100644 (file)
@@ -5,7 +5,7 @@ use i3test;
 use List::MoreUtils qw(all none);
 use List::Util qw(first);
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 ####################
 # Request tree
index b007d5b14d2f569a0e0774765f1787bfa08c6e8e..4df3a2a1fe951ee840ef38ff672bdcbf7ea32a4c 100644 (file)
@@ -9,7 +9,7 @@
 #
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index f6b26b041cb066304714cf334f975b14d8f1bb95..b638e708446606d3820b4fbfd506a744b5b1975f 100644 (file)
@@ -6,7 +6,7 @@
 use List::Util qw(first);
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index fa9d86b54b7362f28e9699e903d0e3d6096f9514..ac029eb14f85c1f2b6ade674c1baa7eb2c52f50d 100644 (file)
@@ -9,7 +9,7 @@ use List::Util qw(first);
 
 my $x = X11::XCB::Connection->new;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 9ed0ae95ea0108bcb1885f44b08638d1e6bfbc52..57855cd5cfb4409fece6e8b5cdc5854c9e6b0b4e 100644 (file)
@@ -5,7 +5,7 @@
 #
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index ea42596c5a644526a43c3bfbd264a0ebc84344cb..9c1e74caa192b86bb3e394368ce76eb71c1cde97 100644 (file)
@@ -7,7 +7,7 @@
 #
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 8730cdfb361fa43b741e5fce20878db14ab20ff2..3b50e39b9c7582ed21336512b37b01de50a606ec 100644 (file)
@@ -5,7 +5,7 @@
 #
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 # We move the pointer out of our way to avoid a bug where the focus will
 # be set to the window under the cursor
index a1464884bfb2705151c0a516cdb8c3dd60bf2a92..05897c88aa4e106f59ab575ccab89a9710388601 100644 (file)
@@ -5,7 +5,7 @@
 #
 use i3test;
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $x = X11::XCB::Connection->new;
 
index 67986251fd801343250fe2abe526cf8ae2855c9e..f33d04dbcd1b093a433bdcdb433ebe843e8a083d 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index bf596adad89815a716b058781c0d1c64a18b6f9b..3ae4b12d95a2e3a50030d53405f0147434021793 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 9e5d78290eb78b5f2a627bede9bb40eee42cf714..31bddafde61df1a71fbff77e315d3541713ee79f 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index bb688be3498591cf8b46c6f2d8edab9caefc8cd2..3afd281b2329a6310ea6982e8c89b504588d9cd6 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 my $x = X11::XCB::Connection->new;
 
 sub check_order {
index a39d74ca144f9cb1a4509e37c9fbe0b5e2477357..9df220d16dab4920ddee4f3bb882f889b889330d 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 my $x = X11::XCB::Connection->new;
 
 sub check_order {
index 6d78e9393a805826d82b5d2cccd124a50f93236d..a4f7bebc597611d2b16dca817aba70aefdba3fb4 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 61e953f3d74fb242b5820ca1a4ff18cf2cc75324..36070db1b124b05ba29ef003aa52d5cfd218fc99 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index c6f42b97f82562a4e2fd7aa00b1f81b571e9aebe..ecffbb12fa2c3ddba57f2a2a57be598f76baf4b5 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 2027cbe09075b108268965b3d76e835183e9ea26..ee60dc7ae0bc5e17d49edc6d6332030a88fa08c5 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 6b8c7be04f0acf59050bf77b37caeba7deaf13da..3e0b2fe156c28a82f44855e5ec1137c0e77bc858 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index eca3cef215189a8067c204656b1cb636c32e850d..04c785ae30983fd5b28ab238d95e082e61964f07 100644 (file)
@@ -17,7 +17,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 subtest 'Window without WM_TAKE_FOCUS', sub {
 
index 25a73b5db623845ba4b3a94073ce5b6744c56b0b..1acf6c66fdf4824493eaa4220485dad9df37ee6b 100644 (file)
@@ -10,7 +10,7 @@ use List::Util qw(first);
 use i3test;
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 my $tmp = fresh_workspace;
 my $window = open_standard_window($x);
 
index 78bf3e805a9a64b08caa6e80278c590b5abb2e82..8d188738a537901bb0e3dc5d7aa1d24dcba80dd9 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 my $x = X11::XCB::Connection->new;
-my $i3 = i3("/tmp/nestedcons");
+my $i3 = i3(get_socket_path());
 
 my $tmp = fresh_workspace;
 
index 06b4bf2b91220213bc57d56f16d51a25eb3214a4..8e7012772af9669bc59c9cf626342b02666764f8 100644 (file)
@@ -41,10 +41,12 @@ sub set_wm_class {
 # start a window and see that it does not get assigned with an empty config
 #####################################################################
 
+my $socketpath = File::Temp::tempnam('/tmp', 'i3-test-socket-');
+
 my ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 close($fh);
 
 diag("Starting i3");
@@ -52,6 +54,9 @@ my $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c
 my $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 my $tmp = fresh_workspace;
@@ -86,7 +91,7 @@ sleep 0.25;
 ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 say $fh q|assign "special" → targetws|;
 close($fh);
 
@@ -95,6 +100,9 @@ $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c $t
 $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 $tmp = fresh_workspace;
@@ -134,6 +142,9 @@ $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c $t
 $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 # initialize the target workspace, then go to a fresh one
@@ -172,7 +183,7 @@ exit_gracefully($process->pid);
 ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 say $fh q|assign "special" → ~|;
 close($fh);
 
@@ -181,6 +192,9 @@ $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c $t
 $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 $tmp = fresh_workspace;
index b9f697dc28489345f983cdf76afab57b880993b3..cfe8bf64fe67cbf63813f93e1acbd6ef305a3c90 100644 (file)
@@ -22,10 +22,12 @@ my $i3_path = abs_path("../i3");
 # other and no split containers are created
 #####################################################################
 
+my $socketpath = File::Temp::tempnam('/tmp', 'i3-test-socket-');
+
 my ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 close($fh);
 
 diag("Starting i3");
@@ -33,6 +35,9 @@ my $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c
 my $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 my $tmp = fresh_workspace;
@@ -57,7 +62,7 @@ exit_gracefully($process->pid);
 ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 say $fh "workspace_layout stacked";
 close($fh);
 
@@ -66,6 +71,9 @@ $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c $t
 $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 $tmp = fresh_workspace;
index 5bd68c79afcbac81b14400b9298c078aeb40ed92..020a36030c70fc732e800daa784a62888cb625a6 100644 (file)
@@ -15,6 +15,7 @@ my $x = X11::XCB::Connection->new;
 
 # assuming we are run by complete-run.pl
 my $i3_path = abs_path("../i3");
+my $socketpath = File::Temp::tempnam('/tmp', 'i3-test-socket-');
 
 #####################################################################
 # 1: test the wrapping behaviour without force_focus_wrapping
@@ -23,7 +24,7 @@ my $i3_path = abs_path("../i3");
 my ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 close($fh);
 
 diag("Starting i3");
@@ -31,6 +32,9 @@ my $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c
 my $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 my $tmp = fresh_workspace;
@@ -69,7 +73,7 @@ exit_gracefully($process->pid);
 ($fh, $tmpfile) = tempfile();
 say $fh "# i3 config file (v4)";
 say $fh "font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1";
-say $fh "ipc-socket /tmp/nestedcons";
+say $fh "ipc-socket $socketpath";
 say $fh "force_focus_wrapping true";
 close($fh);
 
@@ -78,6 +82,9 @@ $i3cmd = "exec " . abs_path("../i3") . " -V -d all --disable-signalhandler -c $t
 $process = Proc::Background->new($i3cmd);
 sleep 1;
 
+# force update of the cached socket path in lib/i3test
+get_socket_path(0);
+
 diag("pid = " . $process->pid);
 
 $tmp = fresh_workspace;
index 7bfad56a9a71d7babeedf2f97554697f54a0defd..bd40f565813eb9005d8253e5a91f59659f35ed7c 100644 (file)
@@ -14,9 +14,10 @@ use Try::Tiny;
 use v5.10;
 
 use Exporter ();
-our @EXPORT = qw(get_workspace_names get_unused_workspace fresh_workspace get_ws_content get_ws get_focused open_empty_con open_standard_window get_dock_clients cmd does_i3_live exit_gracefully workspace_exists focused_ws);
+our @EXPORT = qw(get_workspace_names get_unused_workspace fresh_workspace get_ws_content get_ws get_focused open_empty_con open_standard_window get_dock_clients cmd does_i3_live exit_gracefully workspace_exists focused_ws get_socket_path);
 
 my $tester = Test::Builder->new();
+my $_cached_socket_path = undef;
 
 BEGIN {
     my $window_count = 0;
@@ -69,7 +70,7 @@ sub open_empty_con {
 }
 
 sub get_workspace_names {
-    my $i3 = i3("/tmp/nestedcons");
+    my $i3 = i3(get_socket_path());
     my $tree = $i3->get_tree->recv;
     my @outputs = @{$tree->{nodes}};
     my @cons;
@@ -96,7 +97,7 @@ sub fresh_workspace {
 
 sub get_ws {
     my ($name) = @_;
-    my $i3 = i3("/tmp/nestedcons");
+    my $i3 = i3(get_socket_path());
     my $tree = $i3->get_tree->recv;
 
     my @outputs = @{$tree->{nodes}};
@@ -143,7 +144,7 @@ sub get_focused {
 sub get_dock_clients {
     my $which = shift;
 
-    my $tree = i3("/tmp/nestedcons")->get_tree->recv;
+    my $tree = i3(get_socket_path())->get_tree->recv;
     my @outputs = @{$tree->{nodes}};
     # Children of all dockareas
     my @docked;
@@ -164,7 +165,7 @@ sub get_dock_clients {
 }
 
 sub cmd {
-    i3("/tmp/nestedcons")->command(@_)->recv
+    i3(get_socket_path())->command(@_)->recv
 }
 
 sub workspace_exists {
@@ -173,7 +174,7 @@ sub workspace_exists {
 }
 
 sub focused_ws {
-    my $i3 = i3("/tmp/nestedcons");
+    my $i3 = i3(get_socket_path());
     my $tree = $i3->get_tree->recv;
     my @outputs = @{$tree->{nodes}};
     my @cons;
@@ -186,7 +187,7 @@ sub focused_ws {
 }
 
 sub does_i3_live {
-    my $tree = i3('/tmp/nestedcons')->get_tree->recv;
+    my $tree = i3(get_socket_path())->get_tree->recv;
     my @nodes = @{$tree->{nodes}};
     my $ok = (@nodes > 0);
     $tester->ok($ok, 'i3 still lives');
@@ -196,7 +197,7 @@ sub does_i3_live {
 # Tries to exit i3 gracefully (with the 'exit' cmd) or kills the PID if that fails
 sub exit_gracefully {
     my ($pid, $socketpath) = @_;
-    $socketpath ||= '/tmp/nestedcons';
+    $socketpath ||= get_socket_path();
 
     my $exited = 0;
     try {
@@ -210,4 +211,22 @@ sub exit_gracefully {
     }
 }
 
+# Gets the socket path from the I3_SOCKET_PATH atom stored on the X11 root window
+sub get_socket_path {
+    my ($cache) = @_;
+    $cache ||= 1;
+
+    if ($cache && defined($_cached_socket_path)) {
+        return $_cached_socket_path;
+    }
+
+    my $x = X11::XCB::Connection->new;
+    my $atom = $x->atom(name => 'I3_SOCKET_PATH');
+    my $cookie = $x->get_property(0, $x->get_root_window(), $atom->id, GET_PROPERTY_TYPE_ANY, 0, 256);
+    my $reply = $x->get_property_reply($cookie->{sequence});
+    my $socketpath = $reply->{value};
+    $_cached_socket_path = $socketpath;
+    return $socketpath;
+}
+
 1