diff options
Diffstat (limited to 'Spline/Socketmap.pm')
-rw-r--r-- | Spline/Socketmap.pm | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/Spline/Socketmap.pm b/Spline/Socketmap.pm index 20c8078..d677166 100644 --- a/Spline/Socketmap.pm +++ b/Spline/Socketmap.pm @@ -18,16 +18,17 @@ sub call_handler($@) { return &$handler(@_); } -sub handle_request($) { - my $data = shift; +sub handle_request($$) { + my $self = shift; + my ($data) = @_; my ($map, $key) = split(/ /, $data, 2); my $result = call_handler($map, $key); if (defined $result) { - reply($result); + $self->reply($result); } else { - reply('TEMP Protocol error'); + $self->reply('TEMP Protocol error'); } } @@ -64,14 +65,14 @@ sub netstring_write($$) { print $fd length($data).':'.$data.','; } -sub process_request { +sub process_request($) { my $self = shift; eval { local $SIG{'ALRM'} = sub { die "Timed Out!\n" }; alarm($timeout); - handle_request(netstring_read(*STDIN)); + $self->handle_request(netstring_read(*STDIN)); alarm(0); }; my $err = $@; @@ -80,16 +81,21 @@ sub process_request { if ($err) { if ($err =~ /timed out/i) { - reply('TEMP Timeout'); + $self->reply('TEMP Timeout'); } else { - reply('TEMP Unknown error'); + chomp $err; + $self->reply("TEMP $err"); } } } -sub reply($) { - netstring_write(*STDOUT, @_); +sub reply($$) { + my $self = shift; + my ($data) = @_; + + $self->log(2, $data); + netstring_write(*STDOUT, $data); } 1; |