Commit | Line | Data |
0e547800 |
1 | package Object::Remote::Connector::UNIX; |
2 | |
3 | use IO::Socket::UNIX; |
4 | use Moo; |
5 | |
6 | with 'Object::Remote::Role::Connector'; |
7 | |
fbd3b8ec |
8 | has socket_path => (is => 'ro', required => 1); |
9 | |
0e547800 |
10 | sub _open2_for { |
fbd3b8ec |
11 | my ($self) = @_; |
12 | my $path = $self->socket_path; |
0e547800 |
13 | my $sock = IO::Socket::UNIX->new($path) |
14 | or die "Couldn't open socket ${path}: $!"; |
15 | ($sock, $sock, undef); |
16 | } |
17 | |
18 | no warnings 'once'; |
19 | |
20 | push @Object::Remote::Connection::Guess, sub { |
21 | for ($_[0]) { |
22 | if (defined and !ref and /^(?:\.\/|\/)/) { |
69aaad21 |
23 | my $socket = shift(@_); |
24 | return __PACKAGE__->new(@_, socket_path => $socket); |
0e547800 |
25 | } |
26 | } |
27 | return; |
28 | }; |
29 | |
30 | 1; |