# licensed under GNU GPL v2
package xmlrtorrent::SocketTalker;
-use xmlrtorrent::TalkerBase;
-@ISA = qw(xmlrtorrent::TalkerBase);
+use xmlrtorrent::RTorrentTalkerBase;
+@ISA = qw(xmlrtorrent::RTorrentTalkerBase);
use RPC::XML;
use RPC::XML::Parser;
$self->{'NAME'} = 'socket';
$self->{'DESC'} = 'talker using SCGI over Unix Domain Socket';
$self->{'_PARAMS'} = {
- 'SOCKET' => ['', 'filename of socket'],
+ 'SOCKET' => ['', 'filename of socket'],
};
$self->{'__RPCXMLPARSER'} = RPC::XML::Parser->new();
my $socketfile = $self->_getval('SOCKET');
unless (defined $socketfile and $socketfile ne '') {
- return 'socket talker: SOCKET not set';
+ return 'socket talker: SOCKET not set';
}
# prepare socket
my $socket = IO::Socket::UNIX->new(
- 'Type' => SOCK_STREAM,
- 'Peer' => $socketfile,
- )
- or return "socket talker: cannot connect to SOCKET: $!";
+ 'Type' => SOCK_STREAM,
+ 'Peer' => $socketfile,
+ )
+ or return "socket talker: cannot connect to SOCKET: $!";
$socket->autoflush(1); # default since 1.18, but be sure
# prepare XML RPC request
# prpepare SCGI request
my $scgi_request =
- $self->_create_netstring(
- $self->_create_scgi_header('CONTENT_LENGTH', length $rpc_request)
- .
- $self->_create_scgi_header('SCGI', '1')
- )
- .
- $rpc_request;
+ $self->_create_netstring(
+ $self->_create_scgi_header('CONTENT_LENGTH', length $rpc_request)
+ .
+ $self->_create_scgi_header('SCGI', '1')
+ )
+ .
+ $rpc_request;
# write to socket
$socket->print($scgi_request);
# read from socket
while (my $line = <$socket>) {
- last if ($line =~ /^\s*$/); # munch headers
+ last if ($line =~ /^\s*$/); # munch headers
}
my $ret = '';
while (my $line = <$socket>) {
- $ret .= $line;
+ $ret .= $line;
}
$socket->close() or return "socket talker: cannot close SOCKET: $!";