X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FConnector%2FINET.pm;fp=lib%2FObject%2FRemote%2FConnector%2FINET.pm;h=eb0f1886056d9c91733b162db318777dba8a7822;hp=0000000000000000000000000000000000000000;hb=bef36e73e4257b2ba8e59eb55661ffc51d8a620a;hpb=f663493a08244b6bd4a9db83792ef37ac8ad1e01 diff --git a/lib/Object/Remote/Connector/INET.pm b/lib/Object/Remote/Connector/INET.pm new file mode 100644 index 0000000..eb0f188 --- /dev/null +++ b/lib/Object/Remote/Connector/INET.pm @@ -0,0 +1,30 @@ +package Object::Remote::Connector::INET; + +use IO::Socket::INET; +use Moo; + +with 'Object::Remote::Role::Connector'; + +has socket_path => (is => 'ro', required => 1); + +sub _open2_for { + my ($self) = @_; + my $path = $self->socket_path; + my $sock = IO::Socket::INET->new($path) + or die "Couldn't open socket ${path}: $!"; + ($sock, $sock, undef); +} + +no warnings 'once'; + +push @Object::Remote::Connection::Guess, sub { + for ($_[0]) { + if (defined and !ref and /^.+:\d+$/) { + my $socket = shift(@_); + return __PACKAGE__->new(@_, socket_path => $socket); + } + } + return; +}; + +1;