Event-RPC

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

      different port numbers for the test server.
      Thanks for the report to Andreas König.
    - Applied a patch from Salvatore Bonaccorso which
      fixes missing encoding declarations in POD. Thanks!
    - Fixed some POD typos. Thanks for the report to
      Xavier Guimard.

1.04 Fri Feb 24, 2014, joern
    Bugfixes
    - Under certain infrequently conditions it could
      happen that the server process blocked when
      sending a response packet to a client.
    - Event::RPC::Client failed loading when no
      IO::Socket::SSL is installed.

1.03 Sat Feb  2, 2013, joern
    Features:
    - Added options 'ssl_ca_file and 'ssl_ca_path' options
      to Event::RPC::Client, which enable SSL peer verifcation
      on the client. Thanks for the report about a security
      warning of IO::Socket::SSL to Moritz Bunkus.

lib/Event/RPC/Client.pm  view on Meta::CPAN


    return $local_class;
}

sub send_request {
    my $self = shift;
    my ($request) = @_;

    my $message = $self->get_message_format->new( $self->get_sock );

    $message->write_blocked($request);

    my $rc = eval { $message->read_blocked };

    if ($@) {
        $self->error($@);
        return;
    }

    if ( not $rc->{ok} ) {
        $rc->{msg} .= "\n" if not $rc->{msg} =~ /\n$/;
        croak ("$rc->{msg} -- called via Event::RPC::Client");
    }

lib/Event/RPC/Message.pm  view on Meta::CPAN

    $DEBUG && print "DEBUG: read finished, length=$buffer_length\n";

    my $data = $self->decode_message($self->{buffer});

    $self->{buffer} = undef;
    $self->{length} = 0;

    return $data;
}

sub read_blocked {
    my $self = shift;

    my $rc;
    $rc = $self->read(1) while not defined $rc;

    return $rc;
}

sub set_data {
    my $self = shift;

lib/Event/RPC/Message.pm  view on Meta::CPAN

        $self->{buffer} = undef;
        $self->{length} = 0;
        return 1;
    }

    $DEBUG && print "DEBUG: more to be written...\n";

    return;
}

sub write_blocked {
    my $self = shift;
    my ($data) = @_;

    $self->set_data($data);

    my $finished = 0;
    $finished = $self->write(1) while not $finished;

    1;
}



( run in 1.167 second using v1.01-cache-2.11-cpan-49f99fa48dc )