Net-APNS-Simple
view release on metacpan or search on metacpan
"Test::Spellunker" : "v0.2.7"
}
},
"runtime" : {
"recommends" : {
"Crypt::JWT" : "0.018",
"Crypt::PK::ECC" : "0.059",
"Net::HTTP" : "0"
},
"requires" : {
"IO::Socket::SSL" : "2.038",
"JSON" : "0",
"Moo" : "0",
"Protocol::HTTP2" : "1.08",
"URI" : "0",
"perl" : "5.008001"
}
},
"test" : {
"requires" : {
"Crypt::JWT" : "0.018",
- builder
provides:
Net::APNS::Simple:
file: lib/Net/APNS/Simple.pm
version: '0.07'
recommends:
Crypt::JWT: '0.018'
Crypt::PK::ECC: '0.059'
Net::HTTP: '0'
requires:
IO::Socket::SSL: '2.038'
JSON: '0'
Moo: '0'
Protocol::HTTP2: '1.08'
URI: '0'
perl: '5.008001'
resources:
bugtracker: https://github.com/rockbone/p5-Net-APNS-Simple/issues
homepage: https://github.com/rockbone/p5-Net-APNS-Simple
repository: git://github.com/rockbone/p5-Net-APNS-Simple.git
version: '0.07'
requires 'IO::Socket::SSL' => '>= 2.038';
requires 'JSON';
requires 'Moo';
requires 'Protocol::HTTP2' => '>= 1.08';
requires 'URI';
requires 'perl', '5.008001';
recommends 'Crypt::PK::ECC' => '>= 0.059';
recommends 'Crypt::JWT' => '>= 0.018';
recommends 'Net::HTTP';
lib/Net/APNS/Simple.pm view on Meta::CPAN
package Net::APNS::Simple;
use 5.008001;
use strict;
use warnings;
use Carp ();
use JSON;
use Moo;
use Protocol::HTTP2::Client;
use IO::Select;
use IO::Socket::SSL qw();
our $VERSION = "0.07";
has [qw/auth_key key_id team_id bundle_id development/] => (
is => 'rw',
);
has [qw/cert_file key_file passwd_cb/] => (
is => 'rw',
);
lib/Net/APNS/Simple.pm view on Meta::CPAN
$socket = Net::HTTP->new(PeerAddr => $proxy) || die $@;
$socket->write_request(
CONNECT => "$host:$port",
Host => "$host:$port",
Connection => "Keep-Alive",
'Proxy-Connection' => "Keep-Alive",
);
my ($code, $mess, %h) = $socket->read_response_headers;
$code eq '200' or die "Proxy error: $code $mess";
IO::Socket::SSL->start_SSL(
$socket,
# explicitly set hostname we should use for SNI
SSL_hostname => $host,
%ssl_opts,
) or die $! || $IO::Socket::SSL::SSL_ERROR;
}
else {
# TLS transport socket
$socket = IO::Socket::SSL->new(
PeerHost => $host,
PeerPort => $port,
%ssl_opts,
) or die $! || $IO::Socket::SSL::SSL_ERROR;
}
$self->{_socket} = $socket;
# non blocking
$self->{_socket}->blocking(0);
}
return $self->{_socket};
}
sub _client {
( run in 0.481 second using v1.01-cache-2.11-cpan-4d50c553e7e )