Commit 23a3bbd4 authored by Nick Morrott's avatar Nick Morrott

Imported Upstream version 0.058

parent a45123eb
Release notes for HTTP-Tiny Release notes for HTTP-Tiny
0.058 2016-05-03 11:29:57-04:00 America/New_York
- No changes from 0.057
0.057 2016-04-18 10:17:00-04:00 America/New_York (TRIAL RELEASE)
[ADDED]
- Added support for the SSL_CERT_FILE environment variable.
- Added 'peer' attribute to force a connection to a particular
server.
- Added 'connected' method to allow introspection of persistent
connections.
- An array reference of redirection result hash references is included
in the final response hash reference (but only if redirects occur).
[CHANGED]
- Because folded headers are obsoleted in the revised RFCs, if CRLF is
found in header values followed by one or more spaces, they are all
replaced by a single space.
[FIXED]
- Per the RFC, control headers are now sent first before other headers
(which are sent in arbitrary order).
- Only well-known headers have their case canonicalized; all other
headers are sent in the case provided by the user.
- The 'keep_alive' option now also sets the SO_KEEPALIVE option
on the underlying socket to help with long-lived, idle connections.
- Request header field values are now validated against the RFC rules
(i.e. empty or else space-or-tab separated tokens of printable
characters).
0.056 2015-05-19 06:00:40-04:00 America/New_York 0.056 2015-05-19 06:00:40-04:00 America/New_York
- No changes from 0.055 - No changes from 0.055
......
This software is copyright (c) 2015 by Christian Hansen. This software is copyright (c) 2016 by Christian Hansen.
This is free software; you can redistribute it and/or modify it under This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself. the same terms as the Perl 5 programming language system itself.
...@@ -12,7 +12,7 @@ b) the "Artistic License" ...@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 --- --- The GNU General Public License, Version 1, February 1989 ---
This software is Copyright (c) 2015 by Christian Hansen. This software is Copyright (c) 2016 by Christian Hansen.
This is free software, licensed under: This is free software, licensed under:
...@@ -272,7 +272,7 @@ That's all there is to it! ...@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 --- --- The Artistic License 1.0 ---
This software is Copyright (c) 2015 by Christian Hansen. This software is Copyright (c) 2016 by Christian Hansen.
This is free software, licensed under: This is free software, licensed under:
......
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.036. # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.003.
CONTRIBUTING.mkdn CONTRIBUTING.mkdn
Changes Changes
LICENSE LICENSE
...@@ -46,6 +46,7 @@ corpus/get-18.txt ...@@ -46,6 +46,7 @@ corpus/get-18.txt
corpus/get-19.txt corpus/get-19.txt
corpus/get-20.txt corpus/get-20.txt
corpus/get-21.txt corpus/get-21.txt
corpus/get-22.txt
corpus/head-01.txt corpus/head-01.txt
corpus/keepalive-01.txt corpus/keepalive-01.txt
corpus/keepalive-02.txt corpus/keepalive-02.txt
...@@ -116,10 +117,10 @@ t/SimpleCookieJar.pm ...@@ -116,10 +117,10 @@ t/SimpleCookieJar.pm
t/Util.pm t/Util.pm
xt/author/00-compile.t xt/author/00-compile.t
xt/author/critic.t xt/author/critic.t
xt/author/pod-coverage.t
xt/author/pod-spell.t xt/author/pod-spell.t
xt/author/pod-syntax.t
xt/author/test-version.t
xt/release/distmeta.t xt/release/distmeta.t
xt/release/minimum-version.t xt/release/minimum-version.t
xt/release/pod-coverage.t
xt/release/pod-syntax.t
xt/release/portability.t xt/release/portability.t
xt/release/test-version.t
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
"David Golden <dagolden@cpan.org>" "David Golden <dagolden@cpan.org>"
], ],
"dynamic_config" : 0, "dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 5.036, CPAN::Meta::Converter version 2.150002", "generated_by" : "Dist::Zilla version 6.003, CPAN::Meta::Converter version 2.150001",
"license" : [ "license" : [
"perl_5" "perl_5"
], ],
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
"name" : "HTTP-Tiny", "name" : "HTTP-Tiny",
"no_index" : { "no_index" : {
"directory" : [ "directory" : [
"t", "corpus",
"xt",
"examples", "examples",
"corpus" "t",
"xt"
], ],
"package" : [ "package" : [
"DB" "DB"
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
"requires" : { "requires" : {
"ExtUtils::MakeMaker" : "6.17", "ExtUtils::MakeMaker" : "6.17",
"perl" : "5.006" "perl" : "5.006"
},
"suggests" : {
"JSON::PP" : "2.27300"
} }
}, },
"develop" : { "develop" : {
...@@ -38,26 +41,31 @@ ...@@ -38,26 +41,31 @@
"Dist::Zilla::Plugin::Prereqs" : "0", "Dist::Zilla::Plugin::Prereqs" : "0",
"Dist::Zilla::Plugin::RemovePrereqs" : "0", "Dist::Zilla::Plugin::RemovePrereqs" : "0",
"Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072", "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
"English" : "0",
"File::Spec" : "0", "File::Spec" : "0",
"File::Temp" : "0", "File::Temp" : "0",
"IO::Handle" : "0", "IO::Handle" : "0",
"IPC::Open3" : "0", "IPC::Open3" : "0",
"Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire" : "0", "Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire" : "0",
"Pod::Coverage::TrustPod" : "0", "Pod::Coverage::TrustPod" : "0",
"Pod::Wordlist" : "0",
"Software::License::Perl_5" : "0",
"Test::CPAN::Meta" : "0", "Test::CPAN::Meta" : "0",
"Test::More" : "0", "Test::More" : "0",
"Test::Pod" : "1.41", "Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08", "Test::Pod::Coverage" : "1.08",
"Test::Spelling" : "0.12", "Test::Spelling" : "0.12",
"Test::Version" : "1" "Test::Version" : "1",
"blib" : "1.01",
"perl" : "5.006"
} }
}, },
"runtime" : { "runtime" : {
"recommends" : { "recommends" : {
"HTTP::CookieJar" : "0.001", "HTTP::CookieJar" : "0.001",
"IO::Socket::IP" : "0.25", "IO::Socket::IP" : "0.32",
"IO::Socket::SSL" : "1.42", "IO::Socket::SSL" : "1.42",
"Mozilla::CA" : "20130114", "Mozilla::CA" : "20160104",
"Net::SSLeay" : "1.49" "Net::SSLeay" : "1.49"
}, },
"requires" : { "requires" : {
...@@ -65,6 +73,7 @@ ...@@ -65,6 +73,7 @@
"Fcntl" : "0", "Fcntl" : "0",
"IO::Socket" : "0", "IO::Socket" : "0",
"MIME::Base64" : "0", "MIME::Base64" : "0",
"Socket" : "0",
"Time::Local" : "0", "Time::Local" : "0",
"bytes" : "0", "bytes" : "0",
"perl" : "5.006", "perl" : "5.006",
...@@ -99,7 +108,7 @@ ...@@ -99,7 +108,7 @@
"provides" : { "provides" : {
"HTTP::Tiny" : { "HTTP::Tiny" : {
"file" : "lib/HTTP/Tiny.pm", "file" : "lib/HTTP/Tiny.pm",
"version" : "0.056" "version" : "0.058"
} }
}, },
"release_status" : "stable", "release_status" : "stable",
...@@ -114,16 +123,19 @@ ...@@ -114,16 +123,19 @@
"web" : "https://github.com/chansen/p5-http-tiny" "web" : "https://github.com/chansen/p5-http-tiny"
} }
}, },
"version" : "0.056", "version" : "0.058",
"x_authority" : "cpan:DAGOLDEN", "x_authority" : "cpan:DAGOLDEN",
"x_contributors" : [ "x_contributors" : [
"Alan Gardner <gardner@pythian.com>", "Alan Gardner <gardner@pythian.com>",
"Alessandro Ghedini <al3xbio@gmail.com>", "Alessandro Ghedini <al3xbio@gmail.com>",
"A. Sinan Unur <nanis@cpan.org>",
"Brad Gilbert <bgills@cpan.org>", "Brad Gilbert <bgills@cpan.org>",
"brian m. carlson <sandals@crustytoothpaste.net>",
"Chris Nehren <apeiron@cpan.org>", "Chris Nehren <apeiron@cpan.org>",
"Chris Weyl <cweyl@alumni.drew.edu>", "Chris Weyl <cweyl@alumni.drew.edu>",
"Claes Jakobsson <claes@surfar.nu>", "Claes Jakobsson <claes@surfar.nu>",
"Clinton Gormley <clint@traveljury.com>", "Clinton Gormley <clint@traveljury.com>",
"David Golden <xdg@xdg.me>",
"Dean Pearce <pearce@pythian.com>", "Dean Pearce <pearce@pythian.com>",
"Edward Zborowski <ed@rubensteintech.com>", "Edward Zborowski <ed@rubensteintech.com>",
"James Raspass <jraspass@gmail.com>", "James Raspass <jraspass@gmail.com>",
...@@ -134,9 +146,10 @@ ...@@ -134,9 +146,10 @@
"Martin-Louis Bright <mlbright@gmail.com>", "Martin-Louis Bright <mlbright@gmail.com>",
"Mike Doherty <doherty@cpan.org>", "Mike Doherty <doherty@cpan.org>",
"Olaf Alders <olaf@wundersolutions.com>", "Olaf Alders <olaf@wundersolutions.com>",
"Olivier Mengué <dolmen@cpan.org>", "Olivier Mengu\u00e9 <dolmen@cpan.org>",
"Petr Písař <ppisar@redhat.com>", "Petr P\u00edsa\u0159 <ppisar@redhat.com>",
"Sören Kornetzki <soeren.kornetzki@delti.com>", "SkyMarshal <skymarshal1729@gmail.com>",
"S\u00f6ren Kornetzki <soeren.kornetzki@delti.com>",
"Syohei YOSHIDA <syohex@gmail.com>", "Syohei YOSHIDA <syohex@gmail.com>",
"Tatsuhiko Miyagawa <miyagawa@bulknews.net>", "Tatsuhiko Miyagawa <miyagawa@bulknews.net>",
"Tom Hukins <tom@eborcom.com>", "Tom Hukins <tom@eborcom.com>",
......
...@@ -21,7 +21,7 @@ configure_requires: ...@@ -21,7 +21,7 @@ configure_requires:
ExtUtils::MakeMaker: '6.17' ExtUtils::MakeMaker: '6.17'
perl: '5.006' perl: '5.006'
dynamic_config: 0 dynamic_config: 0
generated_by: 'Dist::Zilla version 5.036, CPAN::Meta::Converter version 2.150002' generated_by: 'Dist::Zilla version 6.003, CPAN::Meta::Converter version 2.150001'
license: perl license: perl
meta-spec: meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html url: http://module-build.sourceforge.net/META-spec-v1.4.html
...@@ -29,27 +29,28 @@ meta-spec: ...@@ -29,27 +29,28 @@ meta-spec:
name: HTTP-Tiny name: HTTP-Tiny
no_index: no_index:
directory: directory:
- corpus
- examples
- t - t
- xt - xt
- examples
- corpus
package: package:
- DB - DB
provides: provides:
HTTP::Tiny: HTTP::Tiny:
file: lib/HTTP/Tiny.pm file: lib/HTTP/Tiny.pm
version: '0.056' version: '0.058'
recommends: recommends:
HTTP::CookieJar: '0.001' HTTP::CookieJar: '0.001'
IO::Socket::IP: '0.25' IO::Socket::IP: '0.32'
IO::Socket::SSL: '1.42' IO::Socket::SSL: '1.42'
Mozilla::CA: '20130114' Mozilla::CA: '20160104'
Net::SSLeay: '1.49' Net::SSLeay: '1.49'
requires: requires:
Carp: '0' Carp: '0'
Fcntl: '0' Fcntl: '0'
IO::Socket: '0' IO::Socket: '0'
MIME::Base64: '0' MIME::Base64: '0'
Socket: '0'
Time::Local: '0' Time::Local: '0'
bytes: '0' bytes: '0'
perl: '5.006' perl: '5.006'
...@@ -59,16 +60,19 @@ resources: ...@@ -59,16 +60,19 @@ resources:
bugtracker: https://github.com/chansen/p5-http-tiny/issues bugtracker: https://github.com/chansen/p5-http-tiny/issues
homepage: https://github.com/chansen/p5-http-tiny homepage: https://github.com/chansen/p5-http-tiny
repository: https://github.com/chansen/p5-http-tiny.git repository: https://github.com/chansen/p5-http-tiny.git
version: '0.056' version: '0.058'
x_authority: cpan:DAGOLDEN x_authority: cpan:DAGOLDEN
x_contributors: x_contributors:
- 'Alan Gardner <gardner@pythian.com>' - 'Alan Gardner <gardner@pythian.com>'
- 'Alessandro Ghedini <al3xbio@gmail.com>' - 'Alessandro Ghedini <al3xbio@gmail.com>'
- 'A. Sinan Unur <nanis@cpan.org>'
- 'Brad Gilbert <bgills@cpan.org>' - 'Brad Gilbert <bgills@cpan.org>'
- 'brian m. carlson <sandals@crustytoothpaste.net>'
- 'Chris Nehren <apeiron@cpan.org>' - 'Chris Nehren <apeiron@cpan.org>'
- 'Chris Weyl <cweyl@alumni.drew.edu>' - 'Chris Weyl <cweyl@alumni.drew.edu>'
- 'Claes Jakobsson <claes@surfar.nu>' - 'Claes Jakobsson <claes@surfar.nu>'
- 'Clinton Gormley <clint@traveljury.com>' - 'Clinton Gormley <clint@traveljury.com>'
- 'David Golden <xdg@xdg.me>'
- 'Dean Pearce <pearce@pythian.com>' - 'Dean Pearce <pearce@pythian.com>'
- 'Edward Zborowski <ed@rubensteintech.com>' - 'Edward Zborowski <ed@rubensteintech.com>'
- 'James Raspass <jraspass@gmail.com>' - 'James Raspass <jraspass@gmail.com>'
...@@ -81,6 +85,7 @@ x_contributors: ...@@ -81,6 +85,7 @@ x_contributors:
- 'Olaf Alders <olaf@wundersolutions.com>' - 'Olaf Alders <olaf@wundersolutions.com>'
- 'Olivier Mengué <dolmen@cpan.org>' - 'Olivier Mengué <dolmen@cpan.org>'
- 'Petr Písař <ppisar@redhat.com>' - 'Petr Písař <ppisar@redhat.com>'
- 'SkyMarshal <skymarshal1729@gmail.com>'
- 'Sören Kornetzki <soeren.kornetzki@delti.com>' - 'Sören Kornetzki <soeren.kornetzki@delti.com>'
- 'Syohei YOSHIDA <syohex@gmail.com>' - 'Syohei YOSHIDA <syohex@gmail.com>'
- 'Tatsuhiko Miyagawa <miyagawa@bulknews.net>' - 'Tatsuhiko Miyagawa <miyagawa@bulknews.net>'
......
# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.036. # This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.003.
use strict; use strict;
use warnings; use warnings;
...@@ -13,7 +13,6 @@ my %WriteMakefileArgs = ( ...@@ -13,7 +13,6 @@ my %WriteMakefileArgs = (
"ExtUtils::MakeMaker" => "6.17" "ExtUtils::MakeMaker" => "6.17"
}, },
"DISTNAME" => "HTTP-Tiny", "DISTNAME" => "HTTP-Tiny",
"EXE_FILES" => [],
"LICENSE" => "perl", "LICENSE" => "perl",
"MIN_PERL_VERSION" => "5.006", "MIN_PERL_VERSION" => "5.006",
"NAME" => "HTTP::Tiny", "NAME" => "HTTP::Tiny",
...@@ -22,6 +21,7 @@ my %WriteMakefileArgs = ( ...@@ -22,6 +21,7 @@ my %WriteMakefileArgs = (
"Fcntl" => 0, "Fcntl" => 0,
"IO::Socket" => 0, "IO::Socket" => 0,
"MIME::Base64" => 0, "MIME::Base64" => 0,
"Socket" => 0,
"Time::Local" => 0, "Time::Local" => 0,
"bytes" => 0, "bytes" => 0,
"strict" => 0, "strict" => 0,
...@@ -41,7 +41,7 @@ my %WriteMakefileArgs = ( ...@@ -41,7 +41,7 @@ my %WriteMakefileArgs = (
"Test::More" => "0.96", "Test::More" => "0.96",
"open" => 0 "open" => 0
}, },
"VERSION" => "0.056", "VERSION" => "0.058",
"test" => { "test" => {
"TESTS" => "t/*.t" "TESTS" => "t/*.t"
} }
...@@ -52,7 +52,7 @@ my %FallbackPrereqs = ( ...@@ -52,7 +52,7 @@ my %FallbackPrereqs = (
"Carp" => 0, "Carp" => 0,
"Data::Dumper" => 0, "Data::Dumper" => 0,
"Exporter" => 0, "Exporter" => 0,
"ExtUtils::MakeMaker" => "6.17", "ExtUtils::MakeMaker" => 0,
"Fcntl" => 0, "Fcntl" => 0,
"File::Basename" => 0, "File::Basename" => 0,
"File::Spec" => 0, "File::Spec" => 0,
...@@ -63,6 +63,7 @@ my %FallbackPrereqs = ( ...@@ -63,6 +63,7 @@ my %FallbackPrereqs = (
"IO::Socket::INET" => 0, "IO::Socket::INET" => 0,
"IPC::Cmd" => 0, "IPC::Cmd" => 0,
"MIME::Base64" => 0, "MIME::Base64" => 0,
"Socket" => 0,
"Test::More" => "0.96", "Test::More" => "0.96",
"Time::Local" => 0, "Time::Local" => 0,
"bytes" => 0, "bytes" => 0,
......
...@@ -2,7 +2,7 @@ NAME ...@@ -2,7 +2,7 @@ NAME
HTTP::Tiny - A small, simple, correct HTTP/1.1 client HTTP::Tiny - A small, simple, correct HTTP/1.1 client
VERSION VERSION
version 0.056 version 0.058
SYNOPSIS SYNOPSIS
use HTTP::Tiny; use HTTP::Tiny;
...@@ -75,7 +75,9 @@ METHODS ...@@ -75,7 +75,9 @@ METHODS
Must be a comma-separated string or an array reference. (default is Must be a comma-separated string or an array reference. (default is
$ENV{no_proxy} —) $ENV{no_proxy} —)
* "timeout" — Request timeout in seconds (default is 60) * "timeout" — Request timeout in seconds (default is 60) If a socket
open, read or write takes longer than the timeout, an exception is
thrown.
* "verify_SSL" — A boolean that indicates whether to validate the SSL * "verify_SSL" — A boolean that indicates whether to validate the SSL
certificate of an "https" — connection (default is false) certificate of an "https" — connection (default is false)
...@@ -192,6 +194,12 @@ METHODS ...@@ -192,6 +194,12 @@ METHODS
* "data_callback" — A code reference that will be called for each * "data_callback" — A code reference that will be called for each
chunks of the response body received. chunks of the response body received.
* "peer" — Override host resolution and force all connections to go
only to a specific peer address, regardless of the URL of the
request. This will include any redirections! This options should be
used with extreme caution (e.g. debugging or very special
circumstances).
The "Host" header is generated from the URL in accordance with RFC 2616. The "Host" header is generated from the URL in accordance with RFC 2616.
It is a fatal error to specify "Host" in the "headers" option. Other It is a fatal error to specify "Host" in the "headers" option. Other
headers may be ignored or overwritten if necessary for transport headers may be ignored or overwritten if necessary for transport
...@@ -234,6 +242,10 @@ METHODS ...@@ -234,6 +242,10 @@ METHODS
will be an arrayref; it will otherwise be a scalar string containing will be an arrayref; it will otherwise be a scalar string containing
the value the value
* "redirects" If this field exists, it is an arrayref of response hash
references from redirects in the same order that redirections
occurred. If it does not exist, then no redirections occurred.
On an exception during the execution of the request, the "status" field On an exception during the execution of the request, the "status" field
will contain 599, and the "content" field will contain the text of the will contain 599, and the "content" field will contain the text of the
exception. exception.
...@@ -265,6 +277,20 @@ METHODS ...@@ -265,6 +277,20 @@ METHODS
list context, returns the boolean and a (possibly multi-line) string of list context, returns the boolean and a (possibly multi-line) string of
errors indicating why SSL isn't available. errors indicating why SSL isn't available.
connected
$host = $http->connected;
($host, $port) = $http->connected;
Indicates if a connection to a peer is being kept alive, per the
"keep_alive" option.
In scalar context, returns the peer host and port, joined with a colon,
or "undef" (if no peer is connected). In list context, returns the peer
host and port or an empty list (if no peer is connected).
Note: This method cannot reliably be used to discover whether the remote
host has closed its end of the socket.
SSL SUPPORT SSL SUPPORT
Direct "https" connections are supported only if IO::Socket::SSL 1.56 or Direct "https" connections are supported only if IO::Socket::SSL 1.56 or
greater and Net::SSLeay 1.49 or greater are installed. An exception will greater and Net::SSLeay 1.49 or greater are installed. An exception will
...@@ -305,11 +331,16 @@ SSL SUPPORT ...@@ -305,11 +331,16 @@ SSL SUPPORT
concerned about security, you should enable this option. concerned about security, you should enable this option.
Certificate verification requires a file containing trusted CA Certificate verification requires a file containing trusted CA
certificates. If the Mozilla::CA module is installed, HTTP::Tiny will certificates.
use the CA file included with it as a source of trusted CA's. (This
means you trust Mozilla, the author of Mozilla::CA, the CPAN mirror If the environment variable "SSL_CERT_FILE" is present, HTTP::Tiny will
where you got Mozilla::CA, the toolchain used to install it, and your try to find a CA certificate file in that location.
operating system security, right?)
If the Mozilla::CA module is installed, HTTP::Tiny will use the CA file
included with it as a source of trusted CA's. (This means you trust
Mozilla, the author of Mozilla::CA, the CPAN mirror where you got
Mozilla::CA, the toolchain used to install it, and your operating system
security, right?)
If that module is not available, then HTTP::Tiny will search several If that module is not available, then HTTP::Tiny will search several
system-specific default locations for a CA certificate file: system-specific default locations for a CA certificate file:
...@@ -415,6 +446,11 @@ LIMITATIONS ...@@ -415,6 +446,11 @@ LIMITATIONS
* There is no support for a Request-URI of '*' for the 'OPTIONS' * There is no support for a Request-URI of '*' for the 'OPTIONS'
request. request.
* Headers mentioned in the RFCs and some other, well-known headers are
generated with their canonical case. Other headers are sent in the
case provided by the user. Except for control headers (which are
sent first), headers are sent in arbitrary order.
Despite the limitations listed above, HTTP::Tiny is considered Despite the limitations listed above, HTTP::Tiny is considered
feature-complete. New feature requests should be directed to feature-complete. New feature requests should be directed to
HTTP::Tiny::UA. HTTP::Tiny::UA.
...@@ -463,8 +499,12 @@ CONTRIBUTORS ...@@ -463,8 +499,12 @@ CONTRIBUTORS
* Alessandro Ghedini <al3xbio@gmail.com> * Alessandro Ghedini <al3xbio@gmail.com>
* A. Sinan Unur <nanis@cpan.org>
* Brad Gilbert <bgills@cpan.org> * Brad Gilbert <bgills@cpan.org>
* brian m. carlson <sandals@crustytoothpaste.net>
* Chris Nehren <apeiron@cpan.org> * Chris Nehren <apeiron@cpan.org>
* Chris Weyl <cweyl@alumni.drew.edu> * Chris Weyl <cweyl@alumni.drew.edu>
...@@ -473,6 +513,8 @@ CONTRIBUTORS ...@@ -473,6 +513,8 @@ CONTRIBUTORS
* Clinton Gormley <clint@traveljury.com> * Clinton Gormley <clint@traveljury.com>
* David Golden <xdg@xdg.me>
* Dean Pearce <pearce@pythian.com> * Dean Pearce <pearce@pythian.com>
* Edward Zborowski <ed@rubensteintech.com> * Edward Zborowski <ed@rubensteintech.com>
...@@ -497,6 +539,8 @@ CONTRIBUTORS ...@@ -497,6 +539,8 @@ CONTRIBUTORS
* Petr Písař <ppisar@redhat.com> * Petr Písař <ppisar@redhat.com>
* SkyMarshal <skymarshal1729@gmail.com>
* Sören Kornetzki <soeren.kornetzki@delti.com> * Sören Kornetzki <soeren.kornetzki@delti.com>
* Syohei YOSHIDA <syohex@gmail.com> * Syohei YOSHIDA <syohex@gmail.com>
...@@ -508,7 +552,7 @@ CONTRIBUTORS ...@@ -508,7 +552,7 @@ CONTRIBUTORS
* Tony Cook <tony@develop-help.com> * Tony Cook <tony@develop-help.com>
COPYRIGHT AND LICENSE COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Christian Hansen. This software is copyright (c) 2016 by Christian Hansen.
This is free software; you can redistribute it and/or modify it under This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself. the same terms as the Perl 5 programming language system itself.
......
...@@ -5,13 +5,17 @@ expected ...@@ -5,13 +5,17 @@ expected
headers headers
Accept: */* Accept: */*
X-Custom: This is a custom header X-Custom: This is a custom header
x-lower: This is a lower-case custom header
authorization: fake auth data
---------- ----------
GET /index.html HTTP/1.1 GET /index.html HTTP/1.1
Host: example.com Host: example.com
Accept: */* Accept: */*
Authorization: fake auth data
Connection: close Connection: close
User-Agent: HTTP-Tiny/VERSION User-Agent: HTTP-Tiny/VERSION
X-Custom: This is a custom header X-Custom: This is a custom header
x-lower: This is a lower-case custom header
---------- ----------
HTTP/1.1 200 OK HTTP/1.1 200 OK
......
url
http://example.com/index.html
expected_rc
599
expected_like
Invalid HTTP header field
headers
trailing-space : foo
----------
----------
...@@ -2,15 +2,16 @@ requires "Carp" => "0"; ...@@ -2,15 +2,16 @@ requires "Carp" => "0";
requires "Fcntl" => "0"; requires "Fcntl" => "0";
requires "IO::Socket" => "0"; requires "IO::Socket" => "0";
requires "MIME::Base64" => "0"; requires "MIME::Base64" => "0";
requires "Socket" => "0";
requires "Time::Local" => "0"; requires "Time::Local" => "0";
requires "bytes" => "0"; requires "bytes" => "0";
requires "perl" => "5.006"; requires "perl" => "5.006";
requires "strict" => "0"; requires "strict" => "0";
requires "warnings" => "0"; requires "warnings" => "0";
recommends "HTTP::CookieJar" => "0.001"; recommends "HTTP::CookieJar" => "0.001";
recommends "IO::Socket::IP" => "0.25"; recommends "IO::Socket::IP" => "0.32";
recommends "IO::Socket::SSL" => "1.42"; recommends "IO::Socket::SSL" => "1.42";
recommends "Mozilla::CA" => "20130114"; recommends "Mozilla::CA" => "20160104";
recommends "Net::SSLeay" => "1.49"; recommends "Net::SSLeay" => "1.49";
suggests "IO::Socket::SSL" => "1.56"; suggests "IO::Socket::SSL" => "1.56";
...@@ -39,21 +40,30 @@ on 'configure' => sub { ...@@ -39,21 +40,30 @@ on 'configure' => sub {
requires "perl" => "5.006"; requires "perl" => "5.006";
}; };
on 'configure' => sub {
suggests "JSON::PP" => "2.27300";
};
on 'develop' => sub { on 'develop' => sub {
requires "Dist::Zilla" => "5"; requires "Dist::Zilla" => "5";
requires "Dist::Zilla::Plugin::Prereqs" => "0"; requires "Dist::Zilla::Plugin::Prereqs" => "0";
requires "Dist::Zilla::Plugin::RemovePrereqs" => "0"; requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072"; requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
requires "English" => "0";
requires "File::Spec" => "0"; requires "File::Spec" => "0";
requires "File::Temp" => "0"; requires "File::Temp" => "0";
requires "IO::Handle" => "0"; requires "IO::Handle" => "0";
requires "IPC::Open3" => "0"; requires "IPC::Open3" => "0";
requires "Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire" => "0"; requires "Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire" => "0";
requires "Pod::Coverage::TrustPod" => "0"; requires "Pod::Coverage::TrustPod" => "0";
requires "Pod::Wordlist" => "0";
requires "Software::License::Perl_5" => "0";
requires "Test::CPAN::Meta" => "0"; requires "Test::CPAN::Meta" => "0";
requires "Test::More" => "0"; requires "Test::More" => "0";
requires "Test::Pod" => "1.41"; requires "Test::Pod" => "1.41";
requires "Test::Pod::Coverage" => "1.08"; requires "Test::Pod::Coverage" => "1.08";
requires "Test::Spelling" => "0.12"; requires "Test::Spelling" => "0.12";
requires "Test::Version" => "1"; requires "Test::Version" => "1";
requires "blib" => "1.01";
requires "perl" => "5.006";
}; };
...@@ -22,9 +22,9 @@ remove = threads ...@@ -22,9 +22,9 @@ remove = threads