Net-EPP-Proxy
view release on metacpan or search on metacpan
lib/Net/EPP/Proxy.pm view on Meta::CPAN
}
# a request frame was received, transmit to remote server and return response to client:
sub mux_input {
my ($self, $mux, $peer, $input) = @_;
my $hdr = substr(${$input}, 0, 4);
my $length = unpack('N', $hdr) - 4;
my $question = substr(${$input}, 4, $length);
my $oldsig = $SIG{PIPE};
$SIG{PIPE} = 'IGNORE';
my $answer;
eval {
local $SIG{ALRM} = sub { die("timed out") };
alarm($self->{net_server}->{epp}->{timeout});
$answer = $self->{net_server}->{epp}->{client}->request($question);
alarm(0);
};
$SIG{PIPE} = $oldsig;
# initialise some things:
my $err = '';
my $fatal = 0;
if ($@ ne '') {
$err = sprintf('error getting answer from remote server: %s timeout %ds)', $@, $self->{net_server}->{epp}->{timeout});
} elsif (length($answer->toString) < 1) {
$err = sprintf('error getting answer from remote server: answer was %d bytes long', length($answer));
( run in 0.780 second using v1.01-cache-2.11-cpan-71847e10f99 )