mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-18 01:33:14 +00:00
41 lines
898 B
Perl
41 lines
898 B
Perl
package Pingback;
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
use English qw(-no_match_vars);
|
|
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
|
|
|
|
local $EVAL_ERROR;
|
|
eval {
|
|
require HTTPMicro;
|
|
require VersionCheck;
|
|
};
|
|
|
|
sub pingback {
|
|
my ($url, $dbh, $ua) = @_; # pingback($url, $dbh[, $ua])
|
|
$ua ||= HTTP::Micro->new();
|
|
|
|
my $response = $ua->request('GET', $url);
|
|
|
|
if ( $response->{status} >= 500
|
|
|| exists $response->{reason}
|
|
|| !exists $response->{content} )
|
|
{
|
|
return;
|
|
}
|
|
|
|
my $items = VersionCheck->parse_server_response(response => $response->{content});
|
|
my $checks = VersionCheck->get_versions(items => $items, dbh => $dbh);
|
|
|
|
my $options = { content => encode_to_plaintext($checks) };
|
|
|
|
return $ua->request('POST', $url, $options);
|
|
}
|
|
|
|
sub encode_to_plaintext {
|
|
my $data = shift;
|
|
return join "\n", map { "$_,$data->{$_}" } keys %$data;
|
|
}
|
|
|
|
1;
|