diff options
-rw-r--r-- | lib/Devel/Mwrap/Rproxy.pm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Devel/Mwrap/Rproxy.pm b/lib/Devel/Mwrap/Rproxy.pm index 76b7d7f..6db72e6 100644 --- a/lib/Devel/Mwrap/Rproxy.pm +++ b/lib/Devel/Mwrap/Rproxy.pm @@ -41,11 +41,15 @@ sub list { open(my $fh, '+>', \(my $str)) or die "open: $!"; print $fh '<html><head><title>', $t, '</title></head><body><pre>', $t, "\n\n"; - opendir(my $dh, $self->{socket_dir}) or return r(500, "socket_dir: $!"); - my @pids = grep(/\A[0-9]+\.sock\z/, readdir($dh)); - for (@pids) { + my $dir = $self->{socket_dir}; + opendir(my $dh, $dir) or return r(500, "socket_dir: $!"); + my @socks = grep(/\A[0-9]+\.sock\z/, readdir($dh)); + my %o = (Type => SOCK_STREAM, Peer => undef); + for (@socks) { + $o{Peer} = "$dir/$_"; substr($_, -5, 5, ''); # chop off .sock my $cmd = $valid_pid->($_) // next; + my $c = IO::Socket::UNIX->new(%o) // next; print $fh qq(<a\nhref="./$_/">$_</a>/); $_ .= '/each/2000'; say $fh qq(<a\nhref="./), $_, qq(">each/2000</a>\t), $cmd; |