App-MatrixTool
view release on metacpan or search on metacpan
lib/App/MatrixTool/HTTPClient.pm view on Meta::CPAN
else {
$req->content( delete $params{content} );
$req->header( Content_type => delete $params{content_type} //
croak "Non-reference content needs 'content_type'" );
}
$req->header( Content_length => length $req->content );
}
if( $self->{print_request} ) {
print STDERR "Sending HTTP request to $params{server}\n";
print STDERR " $_\n" for split m/\n/, $req->as_string( "\n" );
}
my $path = $req->uri->path;
# Different kinds of request need resolving either as a client or as a
# federated server
my $resolve_f;
if( $path =~ m{^/_matrix/key/} ) {
$resolve_f = $self->resolve_matrix( $params{server} )->then( sub {
my @res = @_;
lib/App/MatrixTool/HTTPClient.pm view on Meta::CPAN
print STDERR "Using target $res->{host} port $res->{port}\n" if $self->{print_request};
$ua->do_request(
%params,
%$res,
request => $req,
)->on_done( sub {
my ( $response ) = @_;
if( $self->{print_response} ) {
print STDERR "Received HTTP response:\n";
print STDERR " $_\n" for split m/\n/, $response->as_string( "\n" );
}
})->on_fail( sub {
my ( undef, $name, $response ) = @_;
if( $name eq "http" and $self->{print_response} ) {
print STDERR "Received HTTP response:\n";
print STDERR " $_\n" for split m/\n/, $response->as_string( "\n" );
}
});
} foreach => \@res;
});
}
=head2 request_json
( $body, $response ) = $client->request_json( ... )
lib/App/MatrixTool/ServerIdStore.pm view on Meta::CPAN
}
sub _read_file
{
my $self = shift;
return if $self->{have_read};
if( my $fh = $self->_open_file( "<" ) ) {
while( <$fh> ) {
m/^\s*#/ and next; # ignore comment lines
my ( $server, $id, $key ) = split m/\s+/, $_;
defined $key or warn( "Unable to parse line $_" ), next;
$self->{data}{$server}{$id} = $self->_decode( $key );
}
}
$self->{have_read}++;
}
( run in 1.331 second using v1.01-cache-2.11-cpan-62a16548d74 )