Revision history for Perl extension WWW::Curl.
4.01 Wed Jun 18 2008: - Balint Szilakszi <szbalint at>

    - Reimplemented callback handling to fix several I/O issues (fixes RT #35491)
    - Documentation showing example WWW::Curl::Multi usage is corrected (fixes RT #35520)
    - Should now compile on HP-UX and OSX (fixes RT #36058 and #35349)
    - POD validity fix (fixes RT #15850)
    - Added several new tests
    - Upgraded to Module::Install 0.75 as it now exits correctly on build time
      with NA if the required libcurl isn't available.

4.00 Wed Mar 05 2008: - Balint Szilakszi <szbalint at>
    - Rewritten documentation.
    - New test suite.
    - New build system: using Module::Install instead of ExtUtils::Makemaker.
    - New minimal requirements, Perl 5.6 and libcurl 7.10.8.
    - New WWW::Curl::Multi interface.
    - Removed WWW::Curl::easy.
    - Removed compatibility code for pre 7.10.8 libcurl.
    - Added lots of small improvements to setopt and friends.
    - Bugfixes, mainly for memory leaks.

3.12 Wed Feb 27 2008: - Cris Bailiff <c.bailiff+curl at>
    - New was missed from the MANIFEST, so was not in the distribution. Fixed.

3.11 Mon Feb 25 2008: - Cris Bailiff <c.bailiff+curl at>
    - Merge recent contributions.
    - Updates from various small bug/build reports

3.10 Fri Feb 22 2008: - Anton Fedorov <datacompboy at>
    - Fix documentation for multi interface
    - Added WWW::Curl::Share
    - Added strerror into Easy and Multi interfaces
    - Added support for CURLOPT_DEBUGFUNCTION in Easy interface

3.02_01 Tue Jan 29 2008: - Mark Hindley
    - Contributed CURLOPT_*_LARGE support

3.02_00 Fri Sep 16 2005: - Cris Bailiff <c.bailiff+curl at>
    - Workaround case-sensitive filename issues by making equivalent Easy
      names in easy namespace
    - Test scripts - Fixup ssl tests and remove leftover MUTE option
    - NOTE: That due to namespace changes (easy->Easy) you must change any existing
      code to 'use WWW::Curl::Easy' instead of 'use WWW::Curl::easy', but
      you can still use the WWW::Curl::easy function names until they
      are removed in a future release.
    - Tested on Redhat EL3 (curl 7.10.6) and Mandrake 10.1 (curl 7.13.1)

3.01  Thu Apr 20 2004: - Cris Bailiff <c.bailiff+curl at>
    - Merged Sebastians changes into CVS
    - Updated remaining tests to Test::Simple
    - Added backwards compatability to V2 names (WWW::Curl::easy etc)
    - Dropped backwards compatability to V1.x names

3.00  Thu Feb 12 2004: - Sebastian Riedel <sri at>
    - Added multi support
    - New module names
    - New tests
    - New documentation
    - New examples
    - Big cleanup!!!
    - Too much to tell, it's worth an upgrade

2.00  Tue Apr 22 2003: - Cris Bailiff <c.bailiff+curl at>
    - New top level package name of WWW::Curl in preparation for
      entry to CPAN
    - Rename "Curl::easy" to "WWW::Curl::easy"
    - Add backwards compatability namespace module for existing scripts
    - Implement initial curl_easy_duphandle support
    - Started on curl_easy_form support (WWW:Curl::form) - NOT FUNCTIONAL YET
    - Fixup use of env vars in t/07ftp-upload.t (jellyfish at
    - Adjust IP addresses for t/08ssl.t tests due to moved https servers

1.35  Sun Sep 22 2002: - Cris Bailiff <c.bailiff+curl at>
    - Fixed progress function callback prototype [ curl-Bugs-612432 ],
      reflecting the fix made in curl-7.9.5. Tested in t/05progress.t to
      now return sensible values!

1.34  Wed Aug  7 2002: - Cris Bailiff <c.bailiff+curl at>
    - Fix off-by-one error in setting up of curl_slists from perl arrays,
      which was causing the last item of slists to be dropped. Added regression
      test case.

1.33  Mon Aug  5 2002: - Cris Bailiff <c.bailiff+curl at>
    - Fix serious bug in read callback support (used for POST and upload
      requests), introduced in 1.30, which uploaded random data (due to a
      reversed src/dest in a memory copy).

1.32  Thu Aug  1 2002: - Cris Bailiff <c.bailiff+curl at>
    - Minor Makefile.PL fixes to build cleanly with curl 7.8 as found
      on redhat 7.2.

1.31  Tue Jul 16 2002: - Cris Bailiff <c.bailiff+curl at>
    - Generate better switch() statement syntax in C code, to fix build
      issues on some systems with strict compilers. Reported by Ignasi Roca.

1.30  Mon Jul 15 2002: - Cris Bailiff <c.bailiff+curl at>
    - Testing release after complete code overhaul. Now supports
      cleaner object interface, supports multiple handles per process,
      uses PerlIO for portable I/O (which should be perl 5.8 ready) and
      maybe even supports ithreads. Should be fully backwards compatible,
      but please read the man page for change details and report any issues.
    - Fixed warning caused by slist functions accessing past the end of the
      perl array.
    - Fixed leak caused by consuming slist arguments without freeing.
    - Updates test scripts to OO style, cleaned up output.
    - Deprecated USE_INTERNAL_VARS.

1.21  Thu Jul 11 2002: - Cris Bailiff <c.bailiff+curl at>
    - Minor fixes to assist windows builds from Shawn Poulson
    - Allow passing curl include location on the command line when
      running perl Makefile.PL

1.20  Sat Feb 16 2002: - Cris Bailiff <c.bailiff+curl at>
    - Use standard perl module numbering syntax (valid decimal)
    - Skipped 1.10 in case anyone confuses it with 1.1.0
    - Made every build a rebuild and removed 'pre-built' files - no point
      worrying about not finding curl.h - if we can't find it, we can't
      compile anyway. Obviates bug in 1.1.9 preventing rebuilds.
    - Add support for redefining CURLOPT_STDERR (file handle globs only!)

1.1.9  Sat Dec  8 2001: - Cris Bailiff <c.bailiff+curl at>
    - Enhance Makefile.PL to re-build and 'constants' xs
      function from local installed curl.h. CURLOPT_ and CURLINFO_
      Constants up-to-date for libcurl-7.9.2, but can be re-built
      for almost any libcurl version by removing and
      curlopt-constants.c and re-running 'perl Makefile.PL'
    - Use curl-config to find include and library compile options
    - Updated test scripts to work better under 'make test' (You need
      to set the environment variable 'CURL_TEST_URL' though!)
    - Added test script to display transfer times using new time options
    - Merge changes in Curl_easy by Georg Horn

1.1.8  Thu Sep 20 2001: - Cris Bailiff <c.bailiff+curl at>
    - Re-generate CURLOPT_ constants from curl.h and enhance makefile
      to allow this to be repeated in future or for older versions of
      libcurl. Constants up-to-date for libcurl-7.9(pre)
    - Split tests into t/*.t to simplify each case
    - Add test cases for new SSL switches. This needs ca-bundle.crt
      (from mod_ssl) for verifying test cases.

1.1.7  Thu Sep 13 2001: - Cris Bailiff <c.bailiff+curl at>
    - Documentation Update only - Explicitly state that Curl_easy
      is released under the MIT-X/MPL dual licence. No code changes.

1.1.6  Mon Sep 10 2001: - Cris Bailiff <c.bailiff+curl at>
    - Fix segfault due to changes in header callback behaviour
      since curl-7.8.1-pre3

1.1.5  Fri Apr 20 2001: - Cris Bailiff <c.bailiff+curl at>
    - Add latest CURLOPT_ and CURLINFO_ constants to the constants list

1.1.4  Fri Apr 20 2001: - Cris Bailiff <c.bailiff+curl at>
    - Fix case where curl_slists such as 'HTTPHEADERS' need to
      be re-set over persistant requests

1.1.3  Wed Apr 18 2001: - Cris Bailiff <c.bailiff+curl at>
    - Change/shorten module function names: Curl::easy::curl_easy_setopt
      becomes Curl::easy::setopt etc. This requires minor changes to existing
    - Added callback function support to pass arbitrary SV * (including
      FILE globs) from perl through libcurl to the perl callback.
    - Make callbacks still work with existing scripts which use STDIO
    - Initial support for libcurl 7.7.2 HEADERFUNCTION callback feature
    - Minor API cleanups/changes in the callback function signatures
    - Added Curl::easy::version function to return curl version string
    - Callback documentation added in
    - More tests in

1.1.2  Mon Apr 16 2001: - Georg Horn <horn at>
    - Added support for callback functions. This is for the curl_easy_setopt()
      Still missing, but not really neccessary: Passing a FILE * pointer,
      that is passed in from libcurl, on to the perl callback function.
    - Various cleanups, fixes and enhancements to easy.xs and

1.1.1  Thu Apr 12 2001:
    - Made more options of curl_easy_setopt() work: Options that require
      a list of curl_slist structs to be passed in, like CURLOPT_HTTPHEADER,
      are now working by passing a perl array containing the list elements.
      As always, look at the test script for an example.

1.1.0  Wed Apr 11 2001:
    - tested against libcurl 7.7
    - Added new function Curl::easy::internal_setopt(). By calling
      Curl::easy::internal_setopt(Curl::easy::USE_INTERNAL_VARS, 1);
      the headers and content of the fetched page are no longer stored
      into files (or written to stdout) but are stored into internal
      Variables $Curl::easy::headers and $Curl::easy::content.

1.0.2  Tue Oct 10 2000:
    - runs with libcurl 7.4
    - modified curl_easy_getinfo(). It now calls curl_getinfo() that has
      been added to libcurl in version 7.4.

1.0.1  Tue Oct 10 2000:
    - Added some missing features of curl_easy_setopt():
      - CURLOPT_ERRORBUFFER now works by passing the name of a perl
        variable that shall be crated and the errormessage (if any)
    be stored to.
      - Passing filehandles (Options FILE, INFILE and WRITEHEADER) now works.
    Have a look at to see how it works...

    - Added a new function, curl_easy_getinfo(), that for now always
      returns the number of bytes that where written to disk during the last
      download. If the curl_easy_getinfo() function is included in libcurl,
      (as promised by Daniel ;-)) i will turn this into just a call to this

1.0  Thu Oct 5 2000:
    - first released version
    - runs with libcurl 7.3
    - some features of curl_easy_setopt() are still missing:
      - passing function pointers doesn't work (options WRITEFUNCTION,
      - passing FILE * pointers doesn't work (options FILE, INFILE and
      - passing linked lists doesn't work (options HTTPHEADER and
      - setting the buffer where to store error messages in doesn't work
    (option ERRORBUFFER).