The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl module Furl

3.14 2021-05-13T05:30:22Z
    - Support 308 HTTP status code

3.13 2017-09-19T06:31:34Z

    - Fixed test code(skaji++)

3.12 2017-09-13T06:58:15Z

    commit 88cd747c78d80675c1aa4953083af16f70085252
    Author: Shoichi Kaji <skaji@cpan.org>
    Date:   Mon Aug 14 00:50:55 2017 +0900

        check whether sockets are readable or not before reusing them

    commit 90f3e48ce20845e0f11be40bb975f9c23c86ad8a
    Author: ktat <ktat.is@gmail.com>
    Date:   Mon May 29 14:26:55 2017 +0900

        uri_unescape user & password for Basic auth

3.11 2017-05-16T23:54:24Z

    - added docs

3.10 2017-04-05T16:52:32Z
    - Fix tests for newer Perl @INC issue

3.09 2016-07-21T14:10:52Z

    - Support 1xx status
    - Fix test on Windows issue
    - Fix httpoxy

3.08 2015-08-06T09:32:19Z

    - Handle cookies while redirection.
      (tokuhirom)
    - delete method accept message body
      (kimoto)

3.07 2015-04-21T03:42:39Z

    - Depends on latest Test::TCP
      https://github.com/tokuhirom/Test-TCP/issues/31#issuecomment-94378132

3.06 2015-02-09T23:05:09Z

    commit 8a7786905c101eeab9db1d7baa8c4ec2076f9514
    Author: Jari Salmela <bissei@users.noreply.github.com>
    Date:   Fri Feb 6 08:36:55 2015 +0200

        Update HTTP.pm

        fix for keep-alive as zmmail proposed.
        "In line 526 of Furl/HTTP.pm, FURL checks the HTTP response headers it gets from the server. It will read the C
    onnection from the response header there, and compare the header value with the string keep-alive. The problem is t
    hat this does not take into account a different case of the response header. Some HTTP server returns a header valu
    e of Keep-Alive (mind the caps), so FURL does not recognize it properly.

        I think the following change to Furl/HTTP.pm is more robust.

        if ($connection_header eq 'keep-alive') {
        if (lc($connection_header) eq 'keep-alive') {"

    commit 91ebdf86693c5bfbda497df167977813e2ad75aa
    Author: Kazuho Oku <kazuhooku@gmail.com>
    Date:   Wed Dec 24 16:26:07 2014 +0900

        fix incorrect regex used for testing the response line (amends #80)

    commit 65d0bc170a6344ebd24e0726a44260f3771fda0b
    Author: HIROSE Masaaki <hirose31@gmail.com>
    Date:   Wed Dec 24 13:49:43 2014 +0900

        Check only status code when connect SSL over proxy

3.05 2014-09-24T03:47:02Z

    - Validate content-length before processing.
      (Implemented by tokuhirom)
      (Reviewed by kazuho++)

3.04 2014-09-22T10:08:04Z

    - remove trailing whitespace of Authorization header
      (kazeburo++)

3.03 2014-07-09T23:33:51Z

    commit 8da0f43f2a6b3f04806288ce63a7bdc4df7f9a46
    Author: Toshio Ito <debug.ito@gmail.com>
    Date:   Sat Jun 7 10:34:13 2014 +0900

        t/100_low/07_timeout.t: iteratively increase content size instead of guessing the size of the se
        c.f: gh #71, gh #56

3.02 2014-03-18T20:52:07Z

    - Added new experimental cookie_jar support.
      (tokuhirom)

3.01 2014-02-13T06:19:47Z

    - Fixed documentation bug(Reported by Yappo++)

3.00 2013-11-13T09:39:38Z

    - implement inactivity_timeout (for read / write), requested by autarch++
      (kazuho)
    - Implemented a new callback called `get_address`.
      That fixes the two shortcomings of the existing inet_aton callback listed below.

      * cannot override the port number
      * cannot support protocols other than IPv4 (e.g. IPv6, unix socket, ...)
      (kazuho)

2.19 2013-08-26T02:10:09Z

    - Testing fix for Starlet >= 0.20.
      force response HTTP/1.0. Starlet >= 0.20 support HTTP/1.1
      (kazeburo)

2.18 2013-08-08T07:11:30Z

    - Furl::Response::decoded_content returns undef if user specifies
      'Accept-Encoding' for data compression. Because content is already
      inflated, so HTTP::Message::decoded_content failed and return undef.
      (syohex)

2.17 2013-07-01T03:11:49Z

    - Fix Furl::Request#as_string the request contains ARRAY or HASH.
      (tokuhirom)

2.16 2013-05-22T07:48:21Z

    - Fix timeout problem(#56) on recent Linux(3.8 or later)
      (syohex)
    - Added Furl::Request#as_string
      (tokuhirom)

2.15 2013-05-10T08:40:10Z

    - Added Furl::Response#as_string.
      (tokuhirom)

2.14 2013-04-19T02:11:43Z

    - Fixed testing issue

2.13 2013-04-17T07:52:37Z

    - Tiny test fix.
      (tokuhirom)

2.12 2013-04-15T08:38:49Z

    - Clean up dependencies.
      I confused about 'recommends' and 'suggests'.
      Do not use 'recommends' for optional things.
      (tokuhirom)

2.11 2013-04-04T03:02:13Z

    - [EXPERIMENTAL] Added Furl::Response#encoding
      (tokuhirom)

2.10 2013-03-18T16:08:02

    [INCOMPATIBLE CHANGES]
    - 'keep_request' parameter introduced in 2.08 was *removed*.
    - Furl::Response#request is always useful if you are using highlevel API.
    - Added Furl::Response#captured_req_content and
      Furl::Response#captured_req_headers

2.09 2013-03-07T06:59:44

    - switch to cpanfile(no feature changes)
      (tokuhirom)

2.08 2013-03-06T18:42:22

    - Added Furl::Request
      (ikasam_a)

2.07 2013-03-02T18:52:33

    - added Furl::Response#to_psgi
      (tokuhirom)

2.06 2013-02-14T19:01:27

    - Added Furl::Response#as_hashref

2.05 2013-02-12T15:00:31

    [EXPERIMENTAL FEATURE]
    - Add "X-Internal-Respponse: 1" header for
      Internal response. It's compatible with LWP.
      (tokuhirom)
    - Reverted Client-Warning header introduced in 2.04

2.04 2013-02-12T14:28:53

    [EXPERIMENTAL FEATURE]
    - Add "Client-Warning: Internal Response" header for
      Internal response. It's compatible with LWP.
      (tokuhirom)

2.03 2013-02-09T18:17:13

    - Support URL based authorization.
      Both Proxy-Authorization and Basic Authorization.

2.02 2013-02-06T17:25:11

    - Added Furl::Response#decoded_content
      (xaicron++)
    - Added Furl::Headers#clone
      (tokuhirom)

2.01 2013-01-23T19:17:47


    - pass SSL_verifycn_name on connecting ssl over proxy.
      IO::Socket::SSL detects host name from PeerHost, but it can't when user
      is using proxy.
      (aska++)
    - SSL_verifycn_scheme is not required if skipping verification
      if skip verification, does not requires SSL_verifycn_scheme
      (kazeburo++)


2.00 2013-01-23T15:46:46

    *** VERY IMPORTANT INCOMPATIBLE CHANGE ***
    - Furl verify SSL certs by default.
      If it's fail, furl returns error response.
      (tokuhirom)
    *** VERY IMPORTANT INCOMPATIBLE CHANGE ***

1.04 2013-01-22

    - use `ssl_opts` option in SSL over http proxy
      (aska++)

1.03 2013-01-12

    - fixed testing issue on perl 5.18 hash randomization
      (gfx)

1.02 2013-01-07

    - Use Mozilla::CA if SSL_ca_file and SSL_ca_path is not set.
      This behavior respects LWP::Protocol::https.
      (tokuhirom)

1.01 2013-01-03

    - added `ssl_opts` option to configuring IO::Socket::SSL
      (gfx)

1.00 2012-10-19

    - Bump up version

0.42 2012-10-15

    [INCOMPATIBLE CHANGE]
    - Furl::HTTP is no longer reading Furl.pm.
      This change may breaks your code.
      If you are using Furl class without loading Furl::HTTP,
      it will fail after this release.

0.41 2012-09-25

    [BUG FIX]
    - Furl#agent does not works in past version.
     (Syohei YOSHIDA)

0.40 2012-06-04

    - fixed meta data(Slaven++)
      https://github.com/tokuhirom/Furl/issues/35

0.39 2012-05-29

    - unexpected eof in reading chunked body. It makes busy loop.
      (kazeburo++)

0.38 2011-09-05

    - added ->agent method(bayashi++)

0.37 2011-08-24

    - fixed SSL closing issue
      (reported by sugyan++, resolved by kazuho++, and implemented by gfx++)

0.36 2011-08-23

    - win32 ssl proxy fix(mattn++)

0.35 2011-08-11

    - Compensate for slash of path-query.(xaicron)
      'http://example.com?foo=bar' → 'http://example.com/?foo=bar'

0.34 2011-07-15

    - accept the domain using '_' charcter(xaicron)

0.33 2011-07-13

    - support url doesn't have trailing slash
      like 'http://example.com?gfx=isogashi'
      (xaicron++)

0.32 2011-05-30

    - remove duplicated Host header on high level API(xaicron)

0.31 2011-02-25

    - CarpLevel++(xaicron)

0.30 2011-02-25

    - allow '0000000' as end of chunked response.

0.29 2011-02-23


    - move live tests to xt/.

0.28 2011-02-22

    - fixed bug on proxy with redirect(mattn)

0.27 2011-02-20

    - Add support for 307 (it was not handled as a redirect),
      with tests for all redirects.
      (307 is implemented the same as 301,
      preserving the original requesting method.)
      (audreyt++)

0.26 2011-02-17

    - tiny pod fix(tokuhirom)

0.25 2011-02-16

    - move fucking ssl test to xt/.

0.24 2011-02-08

    - workaround for windows (mattn++, xaicron++)

0.23 2011-01-30

    - properly implement Furl::env_proxy as
      a delegate to Furl::HTTP::env_proxy (as was already documented)
      (lestrrat)

0.22 2011-01-25

    - Remove default ports from the Host header

0.21 2011-01-11

    - use keep-alive on redirection, do not activate the "write_code"
      or the "write_func" feature when redirection(kazuho)
    - silently try to resend a request only when the server returned
      no respnose at all(kazuho)

0.20 2010-12-20

    - add internal error response message to status message
      (tokuhirom)

0.19 2010-12-20

    - fixed documentation bug(tokuhirom)
    - errorneously returned 500 error when closing of the socket was used
      to indicate eof (i.e. no Content-Encoding or Content-Length)
      (Kazuho Oku)

0.18 2010-12-06


    - fixed testing issue(reported by many people)

0.17 2010-12-03

    - only send the connection header with the highest precedence
      (Furl::request => Furl::new)
      (Kazuho Oku)
    - close the connection when furl requested as such,
      even if the server sent "connection: keep-alive"
      (Kazuho Oku)
    - support keep-alive for
      $furl->request(method => 'HEAD', headers => [ qw(connection keep-alive) ])
      (Kazuho Oku)
    - always send the connection header
      (support for automatic keep-alive with HTTP/1.0 servers)
      (Kazuho Oku)

0.16 2010-12-01

    - support for status codes wo. content(kazuho oku)

0.15 2010-11-28

    - doc enhancements(tokuhirom)

0.14 2010-11-22

    - changed the semantics of the "timeout" parameter from per-IO timeout
      to request timeout(Kazuho Oku)
    - optional support for name resolution timeouts
      using Net::DNS::Lite(Kazuho Oku)
    - make blocking operations cancellable (through the "stop_if"
      callback)(Kazuho Oku)

0.13 2010-11-15

    - do not die when $content is empty string.

0.12 2010-11-10

    - fixed testing issue.

0.11 2010-11-04

    - fixed testing issue gh#6
      (reported by ichesnokov)

0.10 2010-11-02

    - change request() to accept HTTP::Request,
      and remove request_with_http_request(lestrrat)
    - Furl::ConnPool.pm was renamed to Furl::ConnectionCache.pm(tokuhirom)

0.09 2010-11-01

    - fixed packaging.

0.08 2010-11-01

    - rewrote connection pooling strategy(tokuhirom)
      (suggested by kazuho++)
    - updated docs(tokuhirom)
    - support relative url in redirection #5(tokuhirom)

0.07 2010-11-01

    - Do not use reference_from, it makes installing issue(reported by y).
      http://github.com/tokuhirom/Furl/issues#issue/4

0.06 2010-10-31

    - now Perl 5.8.1 or later is required.(tokuhirom)
    - High level interface is now available(tokuhirom)
    - Keep alive on HTTP/1.0(kazuho, gfx)
    - Retry requests if the connection is closed while in keep-alive(gfx)

0.05 2010-10-30

    - use HTTP::Parser::XS
    - optimization
    - users can be set your own special headers.
    - fixed Deep recursion when redirect over max_redirects.
    - now, header_get is not public api.

0.04 2010-10-26

    - fixed retval handling around Compress::Raw::Zlib(gfx)
    - Change chuked tests not to use Starman(gfx)
    - use binmode() for fucking win32(gfx)

0.03 2010-10-25

    - support no_proxy
    - fixed keep-alive issue
    - fix ppport issue for perl < 5.12
    - THX fix
    - doc fix
    - micro optimization
    - a lot of tweaks

    [0.02 not released]

    - doc enhancements
    - micro optimization
    - more test cases

0.01 2010-10-24

    - original version