diff options
-rw-r--r-- | Changes | 5 | ||||
-rw-r--r-- | Curl.xs | 8 | ||||
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | META.yml | 2 | ||||
-rw-r--r-- | Makefile.PL | 86 | ||||
-rw-r--r-- | SIGNATURE | 35 | ||||
-rw-r--r-- | lib/WWW/Curl.pm | 9 | ||||
-rw-r--r-- | lib/WWW/Curl/Easy.pm | 2 | ||||
-rw-r--r-- | lib/WWW/Curl/Form.pm | 2 | ||||
-rw-r--r-- | lib/WWW/Curl/Share.pm | 4 | ||||
-rw-r--r-- | t/00constants.t | 59 | ||||
-rw-r--r-- | t/01basic.t | 2 | ||||
-rw-r--r-- | t/19multi.t | 14 | ||||
-rw-r--r-- | t/symbols-in-versions | 657 | ||||
-rw-r--r-- | template/Easy.pm.tmpl | 2 | ||||
-rw-r--r-- | template/Share.pm.tmpl | 4 |
16 files changed, 823 insertions, 69 deletions
@@ -1,4 +1,9 @@ Revision history for the Perl binding of libcurl, WWW::Curl. +4.15 Sun Nov 28 2010: - Balint Szilakszi <szbalint at cpan.org> + + - Refactored constant handling and added thorough testing for it. + - Fixed CURLOPT_PRIVATE, it is now a string and can be set/get accordingly. + 4.14 Sun Oct 24 2010: - Balint Szilakszi <szbalint at cpan.org> - Scalar references can now be used to receive body/header data [gfx]. @@ -814,10 +814,6 @@ curl_easy_setopt(self, option, value, push=0) croak("value is not of type WWW::Curl::Share"); break; #endif - case CURLOPT_PRIVATE: - RETVAL = curl_easy_setopt(self->curl, option, (long)SvIV(value)); - break; - /* default cases */ default: if (option < CURLOPTTYPE_OBJECTPOINT) { /* A long (integer) value */ @@ -1078,7 +1074,7 @@ curl_multi_info_read(self) PREINIT: CURL *easy = NULL; CURLcode res; - long stashid; + char *stashid; int queue; CURLMsg *msg; PPCODE: @@ -1093,7 +1089,7 @@ curl_multi_info_read(self) curl_easy_getinfo(easy, CURLINFO_PRIVATE, &stashid); curl_easy_setopt(easy, CURLINFO_PRIVATE, NULL); curl_multi_remove_handle(self->curlm, easy); - XPUSHs(sv_2mortal(newSViv(stashid))); + XPUSHs(sv_2mortal(newSVpv(stashid,0))); XPUSHs(sv_2mortal(newSViv(res))); } else { XSRETURN_EMPTY; @@ -53,6 +53,7 @@ t/new/10multi-callback.t t/new/README t/pod-coverage.t t/pod.t +t/symbols-in-versions template/Easy.pm.tmpl template/Share.pm.tmpl typemap @@ -24,4 +24,4 @@ requires: perl: 5.6.1 resources: repository: http://github.com/szbalint/WWW--Curl -version: 4.14 +version: 4.15 diff --git a/Makefile.PL b/Makefile.PL index 9bb5182..dea727b 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -41,9 +41,6 @@ print "The version is $version\n"; my @includes = qw(); my ($cflags,$lflags, $ldflags) = ('','',''); -# This utility helper generates the constants function from curl.h -# It is normally only used by the maintainer, but if you're curl is older -# or missing some constants, you can delete curlopt-constants.c and re-run 'perl Makefile.PL' # You may need to specify where to find curl.h on your platform # These are guesses only, in case curl-config is not telling us. @@ -96,37 +93,65 @@ foreach my $try (@includes) { } if (!defined($curl_h)) { - die "Cannot find curl.h - cannot build constants files - see Makefile.PL"; + die "Cannot find curl.h - cannot build constants files - see Makefile.PL"; } else { - $curl_d = "-I" . $curl_d; - print "Found curl.h in $curl_h\n"; + my %constants; + $curl_d = "-I" . $curl_d; + print "Found curl.h in $curl_h\n"; + my @syms; + my $has_cpp = 0; + open(H_IN, "-|", "cpp", $curl_h) and $has_cpp++; + unless ($has_cpp) { open(H_IN, "<", $curl_h) or die("Can't open curl.h at path $curl_h, because: ".$!); } + while ( <H_IN> ) { + if ( /enum\s+(\S+\s+)?{/ .. /}/ ) { + s/^\s+//; + next unless /^CURL/; + chomp; + s/[,\s].*//; + s/=.*$//; + next unless /^\w+$/; + push @syms, $_; + } + } + close H_IN; + open (H, "<", $curl_h) or die ("Cannot open $curl_h: ".$!); + while(<H>) { + if (/^#define (CURL[A-Za-z0-9_]*)/) { + push @syms, $1; + } + } + close H; + + for my $e (sort @syms) { + if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) { + next; + } + my ($group) = $e =~ m/^([^_]+_)/; + $constants{$group}->{$e} = $e; + } + unless ($has_cpp) { open(CURL_H, "<" . $curl_h) or die "Can't open curl.h\n"; - my %constants; while (<CURL_H>) { if ($_ =~ m/CINIT\(/ and $_ !~ m/#/) { - my ($option, $type, $code) = - m/.*CINIT\((\w*)\s*,\s*(\w+)\s*,\s*(\d+).*/; - $constants{CURLOPT_}->{$option} = $option; + my ($option, $type, $code) = m/.*CINIT\((\w*)\s*,\s*(\w+)\s*,\s*(\d+).*/; + $constants{"CURLOPT_"}->{"CURLOPT_".$option} = "CURLOPT_".$option; } elsif ($_ =~ m/^#define CURLOPT_\w+\s+CURLOPT_\w+/) { my ($option, $value) = m/^#define CURLOPT_(\w+)\s+CURLOPT_(\w+)/; - $constants{CURLOPT_}->{$option} = $value; - } elsif ($_ =~ m/^\s*(CURLINFO_|CURLSHOPT_|CURLE_|CURL_LOCK_)(\w+)/) { - $constants{$1}->{$2} = $2; - } elsif ($_ =~ m/^\s*(CURL_)(\w+)(?:[,\s]*)(?:\/\*.*)?$/) { - $constants{$1}->{$2} = $2; - } elsif ($_ =~ m/^\s*CURLPROXY_(\w+)\s*=\s*\d+/) { - $constants{CURLPROXY_}->{$1} = $1; + $constants{"CURLOPT_"}->{"CURLOPT_".$option} = "CURLOPT_".$value; + } elsif ($_ =~ m/^\s*((CURLINFO_|CURLSHOPT_|CURLE_)\w+)/) { + $constants{$2}->{$1}= $1; + } elsif ($_ =~ m/^\s*((CURL_)(?:\w+))(?:[,\s]*)(?:\/\*.*)?$/) { + $constants{$2}->{$1} = $1; + } elsif ($_ =~ m/^\s*((CURLPROXY_)(?:\w+))\s*=\s*\d+/) { + $constants{$2}->{$1} = $1; + } elsif ($_ =~ m/CFINIT\(/ and $_ !~ m/#/) { + my ($option) = m/.*CFINIT\((\w*)\s*.*/; + $constants{"CURLFORM_"}->{"CURLFORM_".$option} = "CURLFORM_".$option; } - } close(CURL_H); - - # some things are ifdefed out... - foreach my $ifdef0 (qw(FLAGS PROGRESSMODE MOREDOCS)) { - delete $constants{CURLOPT_}->{$ifdef0}; } - print "Building curlopt-constants.c for your libcurl version\n"; open(CURL_XS, ">curlopt-constants.c") @@ -140,7 +165,7 @@ constant(const char *name) errno = 0; HERE ; -for my $group (sort keys %constants) { +for my $group (reverse sort keys %constants) { my $grouplength = length($group); my $groupref = $constants{$group}; my @constants = keys %{$constants{$group}}; @@ -156,11 +181,12 @@ HERE2 print CURL_XS " case '$next_initial':\n"; my $count = 0; foreach my $option (sort @constants) { - my $initial = substr($option, 0, 1); + my $remainder = substr($option, length($group), length($option)); + my $initial = substr($remainder, 0, 1); if ($next_initial eq $initial) { print CURL_XS -" if (strEQ(name, \"$option\")) return $group"."$groupref->{$option};\n"; +" if (strEQ(name, \"$remainder\")) return "."$groupref->{$option};\n"; $count++; } @@ -192,10 +218,10 @@ HERE if ($line !~ m/^\@CURLOPT_INCLUDE\@/) { print EASY_PM $line; } else { - for my $group (qw/CURLOPT_ CURLINFO_ CURLE_ CURL_ CURLPROXY_/) { + for my $group (reverse sort keys %constants) { for my $option (sort keys %{$constants{$group}}) { next unless $option; - print EASY_PM $group.$option."\n"; + print EASY_PM $option."\n"; } } } @@ -212,10 +238,10 @@ HERE print SHARE_PM $line; } else { foreach my $option (sort keys %{$constants{CURLSHOPT_}}) { - print SHARE_PM $1 . "CURLSHOPT_".$option . "\n"; + print SHARE_PM $1 . $option . "\n"; } foreach my $option (sort keys %{$constants{CURL_LOCK_}}) { - print SHARE_PM $1 . "CURL_LOCK_".$option . "\n"; + print SHARE_PM $1 . $option . "\n"; } } } @@ -14,12 +14,12 @@ not run its Makefile.PL or Build.PL. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 -SHA1 fcabd943225c88f9aa1039761a0e43f8ef01b40a Changes -SHA1 478b1942dc6fe9dcbc10c3f1849dfa46446370de Curl.xs +SHA1 c23d2d3256e487cfeb2fba5d11861e6ef1f9c6dd Changes +SHA1 65a31f18075b247c6d4bc38ba5fe408f3bd9b2c5 Curl.xs SHA1 94cbea5b3fb940e25cd4535d1c81bfd7d51dac3c LICENSE -SHA1 9dc4200fb6a801473e78843217a2835ee7c390a4 MANIFEST -SHA1 5c2c13c7cc93ee8e882221d2d40e9f5aee954abd META.yml -SHA1 b6eaa6b551f80e0b2520a654e7a3ea897603e6d4 Makefile.PL +SHA1 7cae1c2346a6ce99ac5325cabb51b7ce4ebad209 MANIFEST +SHA1 3c88c4db0ddf4624cc22454d5e1f996ef2b0988a META.yml +SHA1 03e0e48557e565a4663c30bfe8f75660c1336e0f Makefile.PL SHA1 3e8bbd9aa6cd273aef05f78cfef0116a0e3d59b0 README SHA1 ed6f9f399075307a33bd02902ebbadbbbfbd8bab README.Win32 SHA1 fd5f3c4f0418efee3b9b16cf8c3902e8374909df inc/Module/Install.pm @@ -29,13 +29,13 @@ SHA1 a9d6306080cee9c32b18f6cbd3c7636ece67e81a inc/Module/Install/External.pm SHA1 dbec1085a29a855202ee797a5bac319cf426827f inc/Module/Install/MakeMaker.pm SHA1 3e83972921d54198d1246f7278f08664006cd65d inc/Module/Install/Makefile.pm SHA1 12bf1867955480d47d5171a9e9c6a96fabe0b58f inc/Module/Install/Metadata.pm -SHA1 dbda7543f5ce9a1a6c900e00a87916932fe639d0 lib/WWW/Curl.pm -SHA1 1c83271333d4d6f9766352b09a73b45e79bf5ec1 lib/WWW/Curl/Easy.pm -SHA1 84564a68236d7458d8cf82319efadc02621c51d8 lib/WWW/Curl/Form.pm +SHA1 2d3ace586b9c815af387d69d5c6645e139777775 lib/WWW/Curl.pm +SHA1 7909ec25b1dfe3499fd9fab597ed958dbe1169e1 lib/WWW/Curl/Easy.pm +SHA1 0f4db7cb0e4ba57e0c7869f6932322911b55d4cd lib/WWW/Curl/Form.pm SHA1 0bddc700447a50dd26d13119ee60349556ce1811 lib/WWW/Curl/Multi.pm -SHA1 08df49894fc724e358676a80ca7cd3895bc30b9a lib/WWW/Curl/Share.pm -SHA1 802cb1fcd35fe78e4cdb10164a05e54ce1427543 t/00constants.t -SHA1 a6bd16e0cd3ad3923e71955b98eb08ddcde07bd5 t/01basic.t +SHA1 7dbc5c2e1144c4e4ae75d6259bc16d713913f6f5 lib/WWW/Curl/Share.pm +SHA1 3874fe0b4d751149e6ede0967ccec514f3b90756 t/00constants.t +SHA1 83dbfe8cf1c1c567436daa3cc2a7f92e40285139 t/01basic.t SHA1 07b63b1baca142a0e34e79633d0eb57684524bed t/02callbacks.t SHA1 905c848deb6492d539c5bdf89c49632a412af15a t/04abort-test.t SHA1 f9c842503835908a0687ab41655042a16b8b5112 t/05progress.t @@ -50,7 +50,7 @@ SHA1 62551de2e5da5df233b296b716093cea8d791d70 t/15duphandle-callback.t SHA1 785507b3fa6f414298cdcf7ceaba1f9274aa07d2 t/16formpost.t SHA1 e784a874eb36fd5b16a12fc58365cce697ecbbab t/17slist.t SHA1 9b80d6de1675261d43abea2f76cfd610f42a4494 t/18twinhandles.t -SHA1 7daab9e7051396cef5f2a37b52cc6ee1c99be98e t/19multi.t +SHA1 2591e39d5346fb4effca23d3ccef224322d843d7 t/19multi.t SHA1 42f7f35d7ac8b38838cc71fdc7a89402b63e01b7 t/20undefined_subs.t SHA1 c0daf235a136f623fc29ae5c2c2ce6cfc68a9b5f t/21write-to-scalar.t SHA1 2924361d0713031b92c6b888f11e860d357837f7 t/meta.t @@ -68,13 +68,14 @@ SHA1 eee30cfb57132e7c8bdd4a5dd2f32273ab222115 t/new/10multi-callback.t SHA1 20ec0bd03ff2600505d38623153a6eb3087b5814 t/new/README SHA1 ac25bfa56d36f19cbee72a968b06372e88602a61 t/pod-coverage.t SHA1 0190346d7072d458c8a10a45c19f86db641dcc48 t/pod.t -SHA1 a04ab9054821da678e0f43da2c4f6da7177adc53 template/Easy.pm.tmpl -SHA1 f690cca3adf6c17840985fe40c22ee56fdfb999f template/Share.pm.tmpl +SHA1 1811cc3766dbb601d0ae0aea284b6e0a642a483a t/symbols-in-versions +SHA1 dc1cf787a6dec7d4e263f95a1566369f51b94746 template/Easy.pm.tmpl +SHA1 f6f5d52b1d34bff9d085ac40bbc6f8b2a6269c58 template/Share.pm.tmpl SHA1 468b011caaf4d54609b421027d7c6262a9260e89 typemap -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) -iF4EAREIAAYFAkzEhrYACgkQ9vEeIen/Zj4XIwD/cdSn+iaFq7Y62i8WGCfGDQjT -3g3L10PbxmuoMT1bRcUA/0a+JO8OxUrQNOXmOe4zzEVYjdSc8Aq9ypVwdwuVESkV -=iums +iF4EAREIAAYFAkzyt84ACgkQ9vEeIen/Zj4wSAD/Z0JHQVK5ie0xOBkD+4A1vAWb +A0JWUq6/8e9GNyVtjJoA/20hxeygZr4zddpfZ4AakE6f9m3+g3KEKo73+26HgZYq +=YZHu -----END PGP SIGNATURE----- diff --git a/lib/WWW/Curl.pm b/lib/WWW/Curl.pm index 4a24349..4d87f9a 100644 --- a/lib/WWW/Curl.pm +++ b/lib/WWW/Curl.pm @@ -4,7 +4,7 @@ use strict; use warnings; use XSLoader; -our $VERSION = '4.14'; +our $VERSION = '4.15'; XSLoader::load(__PACKAGE__, $VERSION); END { @@ -70,6 +70,7 @@ Here is a small snippet of making a request with WWW::Curl::Easy. print("An error happened: $retcode ".$curl->strerror($retcode)." ".$curl->errbuf."\n"); } +See L<curl_easy_setopt(3)> for details of C<setopt()>. =head1 WWW::Curl::Multi @@ -308,6 +309,10 @@ In the case of no file descriptors in the given set, an empty array is returned. It might be surprising that if C<CURLOPT_FOLLOWLOCATION> is set and header output was enabled, headers show up for all http responses. The reasoning behind that and possible code adjustments are outlined here: L<https://rt.cpan.org/Ticket/Display.html?id=61569>. +=head2 CURLOPT_PRIVATE + +Despite what the libcurl manual says, in Perl land, only string values are suitable for this option. + =head1 ADDITIONAL METHODS =head2 On WWW::Curl::Easy objects @@ -399,4 +404,6 @@ L<http://curl.haxx.se> L<http://search.cpan.org/perldoc?WWW::Curl::Simple> +L<libcurl(3)> + The development source code is also available: L<http://github.com/szbalint/WWW--Curl/tree/master> diff --git a/lib/WWW/Curl/Easy.pm b/lib/WWW/Curl/Easy.pm index cbb3281..f0e8454 100644 --- a/lib/WWW/Curl/Easy.pm +++ b/lib/WWW/Curl/Easy.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Carp; -our $VERSION = '4.14'; +our $VERSION = '4.15'; use WWW::Curl (); use Exporter (); diff --git a/lib/WWW/Curl/Form.pm b/lib/WWW/Curl/Form.pm index 3a149f6..76e536e 100644 --- a/lib/WWW/Curl/Form.pm +++ b/lib/WWW/Curl/Form.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Carp; -our $VERSION = '4.14'; +our $VERSION = '4.15'; use WWW::Curl (); use Exporter (); diff --git a/lib/WWW/Curl/Share.pm b/lib/WWW/Curl/Share.pm index c4ffad6..2bd9aff 100644 --- a/lib/WWW/Curl/Share.pm +++ b/lib/WWW/Curl/Share.pm @@ -19,8 +19,8 @@ sub AUTOLOAD { ( my $constname = $AUTOLOAD ) =~ s/.*:://; my $value = constant( $constname ); - if($!) { - croak("Undefined subroutine &$AUTOLOAD failed"); + if ($!) { + croak("Undefined subroutine &$AUTOLOAD failed for reasons of $!, constname was $constname, value was: $value"); } { diff --git a/t/00constants.t b/t/00constants.t index fa30132..bd411f7 100644 --- a/t/00constants.t +++ b/t/00constants.t @@ -1,9 +1,60 @@ #!perl use strict; use warnings; -use Test::More tests => 3; +use Test::More; +use WWW::Curl::Easy; -BEGIN { use_ok( 'WWW::Curl::Easy' ); } +my $ver_num_raw = WWW::Curl::Easy::version(); +my ($ver_num) = $ver_num_raw =~ m!libcurl/(\d\.\d+\.\d+)!; +my ($major, $minor, $bugfix) = split(/\./, $ver_num); -ok (CURLOPT_URL == 10000+2, "Constant loaded ok"); -ok (CURLE_URL_MALFORMAT, "CURLE_ error constant can be used"); +open(my $fh, '<', 't/symbols-in-versions') or die($!); + +my @consts; +for my $row (<$fh>) { + chomp($row); + next if ($row =~ m/^#/); + my ($name, $intro, $dep, $remov) = split(/\s+/, $row); + push @consts, [$name, $intro, $dep, $remov]; +} + +# In case we can't use cpp to extract symbols, skipping the multi constant tests for now. +my $skip_multi; +my $value = WWW::Curl::Easy::constant('CURL_LAST'); +$skip_multi++ if (! $!); + +my @checklist; +for my $row (@consts) { + my ($name, $intro, $depr, $outro) = @{$row}; + my $check = 0; + if (!$outro && $intro) { + my ($maj_in, $min_in, $bf_in) = split(/\./, $intro); + if ($maj_in eq '-' || $major > $maj_in) { + $check = 1; + } elsif ($major == $maj_in) { + if ($minor > $min_in) { $check = 1 + } elsif ($minor == $min_in ) { + if ($bugfix > $bf_in) { + $check = 1; + } elsif ($bugfix == $bf_in) { + $check = 1; + } else { + next + } + } else { + next; + } + } else { + next; + } + } + if ($check) { + next if ($skip_multi && $name =~ m/^CURLM/); + push @checklist, [$name, $depr]; + } +} +plan tests => scalar(@checklist); +for my $row (@checklist) { + my $value = WWW::Curl::Easy::constant($row->[0]); + ok(!$! && (defined($value) || $row->[1]), "$row->[0] is defined alright - $!"); +} diff --git a/t/01basic.t b/t/01basic.t index 744be05..93e12b1 100644 --- a/t/01basic.t +++ b/t/01basic.t @@ -40,7 +40,7 @@ $curl->setopt(CURLOPT_COOKIEFILE, ""); my $retcode = $curl->perform(); ok(! $retcode, "Curl return code ok"); - +diag("An error happened: $retcode ".$curl->strerror($retcode)." ".$curl->errbuf."\n") if ($retcode); my $bytes = $curl->getinfo(CURLINFO_SIZE_DOWNLOAD); ok( $bytes, "getinfo returns non-zero number of bytes"); my $realurl = $curl->getinfo(CURLINFO_EFFECTIVE_URL); diff --git a/t/19multi.t b/t/19multi.t index cfcf489..6f4c1cc 100644 --- a/t/19multi.t +++ b/t/19multi.t @@ -2,7 +2,7 @@ use strict; use warnings; -use Test::More tests => 16; +use Test::More tests => 20; use WWW::Curl::Easy; use WWW::Curl::Multi; use File::Temp qw/tempfile/; @@ -38,11 +38,13 @@ sub action_wait { $curl->setopt( CURLOPT_URL, $url); ok(! $curl->setopt(CURLOPT_WRITEHEADER, $header), "Setting CURLOPT_WRITEHEADER"); ok(! $curl->setopt(CURLOPT_WRITEDATA,$body), "Setting CURLOPT_WRITEDATA"); + ok(! $curl->setopt(CURLOPT_PRIVATE,"foo"), "Setting CURLOPT_PRIVATE"); my $curl2 = new WWW::Curl::Easy; $curl2->setopt( CURLOPT_URL, $url); ok(! $curl2->setopt(CURLOPT_WRITEHEADER, $header2), "Setting CURLOPT_WRITEHEADER"); ok(! $curl2->setopt(CURLOPT_WRITEDATA,$body2), "Setting CURLOPT_WRITEDATA"); + ok(! $curl2->setopt(CURLOPT_PRIVATE,42), "Setting CURLOPT_PRIVATE"); my $curlm = new WWW::Curl::Multi; my @fds = $curlm->fdset; @@ -63,7 +65,15 @@ sub action_wait { $curlm->perform; @fds = $curlm->fdset; ok( @{$fds[0]} + @{$fds[1]} == 2, "The read or write fdset contains two fds"); - while ($curlm->perform) { + my $active = 2; + while ($active != 0) { + my $ret = $curlm->perform; + if ($ret != $active) { + while (my ($id,$value) = $curlm->info_read) { + ok($id eq "foo" || $id == 42, "The stored private value matches what we set"); + } + $active = $ret; + } action_wait($curlm); } @fds = $curlm->fdset; diff --git a/t/symbols-in-versions b/t/symbols-in-versions new file mode 100644 index 0000000..8d404b2 --- /dev/null +++ b/t/symbols-in-versions @@ -0,0 +1,657 @@ +# _ _ ____ _ +# ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# This document lists defines and other symbols present in libcurl, together +# with exact information about the first libcurl version that provides the +# symbol, the first version in which the symbol was marked as deprecated and +# for a few symbols the last version that featured it. The names appear in +# alphabetical order. +# +# Name Introduced Deprecated Removed +# +CURLAUTH_ANY 7.10.6 +CURLAUTH_ANYSAFE 7.10.6 +CURLAUTH_BASIC 7.10.6 +CURLAUTH_DIGEST 7.10.6 +CURLAUTH_DIGEST_IE 7.19.3 +CURLAUTH_GSSNEGOTIATE 7.10.6 +CURLAUTH_NONE 7.10.6 +CURLAUTH_NTLM 7.10.6 +CURLAUTH_ONLY 7.21.3 +CURLCLOSEPOLICY_CALLBACK 7.7 +CURLCLOSEPOLICY_LEAST_RECENTLY_USED 7.7 +CURLCLOSEPOLICY_LEAST_TRAFFIC 7.7 +CURLCLOSEPOLICY_NONE 7.7 +CURLCLOSEPOLICY_OLDEST 7.7 +CURLCLOSEPOLICY_SLOWEST 7.7 +CURLE_ABORTED_BY_CALLBACK 7.1 +CURLE_AGAIN 7.18.2 +CURLE_ALREADY_COMPLETE 7.7.2 +CURLE_BAD_CALLING_ORDER 7.1 7.17.0 +CURLE_BAD_CONTENT_ENCODING 7.10 +CURLE_BAD_DOWNLOAD_RESUME 7.10 +CURLE_BAD_FUNCTION_ARGUMENT 7.1 +CURLE_BAD_PASSWORD_ENTERED - 7.17.0 +CURLE_CHUNK_FAILED 7.20.1 +CURLE_CONV_FAILED 7.15.4 +CURLE_CONV_REQD 7.15.4 +CURLE_COULDNT_CONNECT 7.1 +CURLE_COULDNT_RESOLVE_HOST 7.1 +CURLE_COULDNT_RESOLVE_PROXY 7.1 +CURLE_FAILED_INIT 7.1 +CURLE_FILESIZE_EXCEEDED 7.10.8 +CURLE_FILE_COULDNT_READ_FILE 7.1 +CURLE_FTP_ACCESS_DENIED 7.1 +CURLE_FTP_BAD_DOWNLOAD_RESUME 7.1 +CURLE_FTP_BAD_DOWNLOAD_RESUME 7.1 7.1 +CURLE_FTP_BAD_FILE_LIST 7.20.1 +CURLE_FTP_CANT_GET_HOST 7.1 +CURLE_FTP_CANT_RECONNECT 7.1 7.17.0 +CURLE_FTP_COULDNT_GET_SIZE 7.1 7.17.0 +CURLE_FTP_COULDNT_RETR_FILE 7.1 +CURLE_FTP_COULDNT_SET_ASCII 7.1 7.17.0 +CURLE_FTP_COULDNT_SET_BINARY 7.1 7.17.0 +CURLE_FTP_COULDNT_SET_TYPE 7.17.0 +CURLE_FTP_COULDNT_STOR_FILE 7.1 +CURLE_FTP_COULDNT_USE_REST 7.1 +CURLE_FTP_PARTIAL_FILE 7.1 7.1 +CURLE_FTP_PORT_FAILED 7.1 +CURLE_FTP_PRET_FAILED 7.20.0 +CURLE_FTP_QUOTE_ERROR 7.1 7.17.0 +CURLE_FTP_SSL_FAILED - 7.17.0 +CURLE_FTP_USER_PASSWORD_INCORRECT 7.1 7.17.0 +CURLE_FTP_WEIRD_227_FORMAT 7.1 +CURLE_FTP_WEIRD_PASS_REPLY 7.1 +CURLE_FTP_WEIRD_PASV_REPLY 7.1 +CURLE_FTP_WEIRD_SERVER_REPLY 7.1 +CURLE_FTP_WEIRD_USER_REPLY 7.1 7.17.0 +CURLE_FTP_WRITE_ERROR 7.1 7.17.0 +CURLE_FUNCTION_NOT_FOUND 7.1 +CURLE_GOT_NOTHING 7.9.1 +CURLE_HTTP_NOT_FOUND 7.1 +CURLE_HTTP_PORT_FAILED - 7.12.0 +CURLE_HTTP_POST_ERROR 7.1 +CURLE_HTTP_RANGE_ERROR 7.1 7.17.0 +CURLE_HTTP_RETURNED_ERROR 7.10.3 +CURLE_INTERFACE_FAILED 7.12.0 +CURLE_LDAP_CANNOT_BIND 7.1 +CURLE_LDAP_INVALID_URL 7.10.8 +CURLE_LDAP_SEARCH_FAILED 7.1 +CURLE_LIBRARY_NOT_FOUND 7.1 7.17.0 +CURLE_LOGIN_DENIED 7.13.1 +CURLE_MALFORMAT_USER 7.1 7.17.0 +CURLE_OK 7.1 +CURLE_OPERATION_TIMEDOUT 7.17.0 +CURLE_OPERATION_TIMEOUTED 7.1 7.17.0 +CURLE_OUT_OF_MEMORY 7.1 +CURLE_PARTIAL_FILE 7.1 +CURLE_PEER_FAILED_VERIFICATION 7.17.1 +CURLE_QUOTE_ERROR 7.17.0 +CURLE_RANGE_ERROR 7.17.0 +CURLE_READ_ERROR 7.1 +CURLE_RECV_ERROR 7.13.0 +CURLE_REMOTE_ACCESS_DENIED 7.17.0 +CURLE_REMOTE_DISK_FULL 7.17.0 +CURLE_REMOTE_FILE_EXISTS 7.17.0 +CURLE_REMOTE_FILE_NOT_FOUND 7.16.1 +CURLE_RTSP_CSEQ_ERROR 7.20.0 +CURLE_RTSP_SESSION_ERROR 7.20.0 +CURLE_SEND_ERROR 7.13.0 +CURLE_SEND_FAIL_REWIND 7.12.3 +CURLE_SHARE_IN_USE - 7.17.0 +CURLE_SSH 7.16.1 +CURLE_SSL_CACERT 7.10 +CURLE_SSL_CACERT_BADFILE 7.16.0 +CURLE_SSL_CERTPROBLEM 7.10 +CURLE_SSL_CIPHER 7.10 +CURLE_SSL_CONNECT_ERROR 7.1 +CURLE_SSL_CRL_BADFILE 7.19.0 +CURLE_SSL_ENGINE_INITFAILED 7.13.0 +CURLE_SSL_ENGINE_NOTFOUND 7.9.3 +CURLE_SSL_ENGINE_SETFAILED 7.9.3 +CURLE_SSL_ISSUER_ERROR 7.19.0 +CURLE_SSL_PEER_CERTIFICATE - 7.17.1 +CURLE_SSL_SHUTDOWN_FAILED 7.16.1 +CURLE_TELNET_OPTION_SYNTAX 7.7 +CURLE_TFTP_DISKFULL 7.15.0 7.17.0 +CURLE_TFTP_EXISTS 7.15.0 7.17.0 +CURLE_TFTP_ILLEGAL 7.15.0 +CURLE_TFTP_NOSUCHUSER 7.15.0 +CURLE_TFTP_NOTFOUND 7.15.0 +CURLE_TFTP_PERM 7.15.0 +CURLE_TFTP_UNKNOWNID 7.15.0 +CURLE_TOO_MANY_REDIRECTS 7.5 +CURLE_UNKNOWN_TELNET_OPTION 7.7 +CURLE_UNSUPPORTED_PROTOCOL 7.1 +CURLE_UPLOAD_FAILED 7.16.3 +CURLE_URL_MALFORMAT 7.1 +CURLE_URL_MALFORMAT_USER 7.1 7.17.0 +CURLE_USE_SSL_FAILED 7.17.0 +CURLE_WRITE_ERROR 7.1 +CURLFILETYPE_DEVICE_BLOCK 7.21.0 +CURLFILETYPE_DEVICE_CHAR 7.21.0 +CURLFILETYPE_DIRECTORY 7.21.0 +CURLFILETYPE_DOOR 7.21.0 +CURLFILETYPE_FILE 7.21.0 +CURLFILETYPE_NAMEDPIPE 7.21.0 +CURLFILETYPE_SOCKET 7.21.0 +CURLFILETYPE_SYMLINK 7.21.0 +CURLFILETYPE_UNKNOWN 7.21.0 +CURLFINFOFLAG_KNOWN_FILENAME 7.21.0 +CURLFINFOFLAG_KNOWN_FILETYPE 7.21.0 +CURLFINFOFLAG_KNOWN_GID 7.21.0 +CURLFINFOFLAG_KNOWN_HLINKCOUNT 7.21.0 +CURLFINFOFLAG_KNOWN_PERM 7.21.0 +CURLFINFOFLAG_KNOWN_SIZE 7.21.0 +CURLFINFOFLAG_KNOWN_TIME 7.21.0 +CURLFINFOFLAG_KNOWN_UID 7.21.0 +CURLFORM_ARRAY 7.9.1 +CURLFORM_BUFFER 7.9.8 +CURLFORM_BUFFERLENGTH 7.9.8 +CURLFORM_BUFFERPTR 7.9.8 +CURLFORM_CONTENTHEADER 7.9.3 +CURLFORM_CONTENTSLENGTH 7.9.1 +CURLFORM_CONTENTTYPE 7.9.1 +CURLFORM_COPYCONTENTS 7.9.1 +CURLFORM_COPYNAME 7.9.1 +CURLFORM_END 7.9.1 +CURLFORM_FILE 7.9.1 +CURLFORM_FILECONTENT 7.9.1 +CURLFORM_FILENAME 7.9.6 +CURLFORM_NAMELENGTH 7.9.1 +CURLFORM_NOTHING 7.9.1 +CURLFORM_PTRCONTENTS 7.9.1 +CURLFORM_PTRNAME 7.9.1 +CURLFORM_STREAM 7.18.2 +CURLFTPAUTH_DEFAULT 7.12.2 +CURLFTPAUTH_DEFAULT 7.12.2 +CURLFTPAUTH_SSL 7.12.2 +CURLFTPAUTH_SSL 7.12.2 +CURLFTPAUTH_TLS 7.12.2 +CURLFTPAUTH_TLS 7.12.2 +CURLFTPMETHOD_DEFAULT 7.15.1 +CURLFTPMETHOD_MULTICWD 7.15.1 +CURLFTPMETHOD_NOCWD 7.15.1 +CURLFTPMETHOD_SINGLECWD 7.15.1 +CURLFTPSSL_ALL - 7.17.0 +CURLFTPSSL_CCC_ACTIVE 7.16.1 +CURLFTPSSL_CCC_NONE 7.16.1 +CURLFTPSSL_CCC_PASSIVE 7.16.1 +CURLFTPSSL_CONTROL 7.11.0 7.17.0 +CURLFTPSSL_NONE 7.11.0 7.17.0 +CURLFTPSSL_TRY 7.11.0 7.17.0 +CURLFTP_CREATE_DIR 7.19.4 +CURLFTP_CREATE_DIR_NONE 7.19.4 +CURLFTP_CREATE_DIR_RETRY 7.19.4 +CURLINFO_APPCONNECT_TIME 7.19.0 +CURLINFO_CERTINFO 7.19.1 +CURLINFO_CONDITION_UNMET 7.19.4 +CURLINFO_CONNECT_TIME 7.4.1 +CURLINFO_CONTENT_LENGTH_DOWNLOAD 7.6.1 +CURLINFO_CONTENT_LENGTH_UPLOAD 7.6.1 +CURLINFO_CONTENT_TYPE 7.9.4 +CURLINFO_COOKIELIST 7.14.1 +CURLINFO_DATA_IN 7.9.6 +CURLINFO_DATA_OUT 7.9.6 +CURLINFO_DOUBLE 7.4.1 +CURLINFO_EFFECTIVE_URL 7.3 +CURLINFO_END 7.4.1 +CURLINFO_FILETIME 7.5 +CURLINFO_FTP_ENTRY_PATH 7.15.4 +CURLINFO_HEADER_IN 7.9.6 +CURLINFO_HEADER_OUT 7.9.6 +CURLINFO_HEADER_SIZE 7.4.1 +CURLINFO_HTTPAUTH_AVAIL 7.10.8 +CURLINFO_HTTP_CODE 7.4.1 7.10.8 +CURLINFO_HTTP_CONNECTCODE 7.10.7 +CURLINFO_LASTONE 7.4.1 +CURLINFO_LASTSOCKET 7.15.2 +CURLINFO_LOCAL_IP 7.21.0 +CURLINFO_LOCAL_PORT 7.21.0 +CURLINFO_LONG 7.4.1 +CURLINFO_MASK 7.4.1 +CURLINFO_NAMELOOKUP_TIME 7.4.1 +CURLINFO_NONE 7.4.1 +CURLINFO_NUM_CONNECTS 7.12.3 +CURLINFO_OS_ERRNO 7.12.2 +CURLINFO_PRETRANSFER_TIME 7.4.1 +CURLINFO_PRIMARY_IP 7.19.0 +CURLINFO_PRIMARY_PORT 7.21.0 +CURLINFO_PRIVATE 7.10.3 +CURLINFO_PRIVATE 7.10.3 +CURLINFO_PROXYAUTH_AVAIL 7.10.8 +CURLINFO_REDIRECT_COUNT 7.9.7 +CURLINFO_REDIRECT_TIME 7.9.7 +CURLINFO_REDIRECT_URL 7.18.2 +CURLINFO_REQUEST_SIZE 7.4.1 +CURLINFO_RESPONSE_CODE 7.10.8 +CURLINFO_RTSP_CLIENT_CSEQ 7.20.0 +CURLINFO_RTSP_CSEQ_RECV 7.20.0 +CURLINFO_RTSP_SERVER_CSEQ 7.20.0 +CURLINFO_RTSP_SESSION_ID 7.20.0 +CURLINFO_SIZE_DOWNLOAD 7.4.1 +CURLINFO_SIZE_UPLOAD 7.4.1 +CURLINFO_SLIST 7.12.3 +CURLINFO_SPEED_DOWNLOAD 7.4.1 +CURLINFO_SPEED_UPLOAD 7.4.1 +CURLINFO_SSL_DATA_IN 7.12.1 +CURLINFO_SSL_DATA_OUT 7.12.1 +CURLINFO_SSL_ENGINES 7.12.3 +CURLINFO_SSL_VERIFYRESULT 7.5 +CURLINFO_STARTTRANSFER_TIME 7.9.2 +CURLINFO_STRING 7.4.1 +CURLINFO_TEXT 7.9.6 +CURLINFO_TOTAL_TIME 7.4.1 +CURLINFO_TYPEMASK 7.4.1 +CURLIOCMD_NOP 7.12.3 +CURLIOCMD_RESTARTREAD 7.12.3 +CURLIOE_FAILRESTART 7.12.3 +CURLIOE_OK 7.12.3 +CURLIOE_UNKNOWNCMD 7.12.3 +CURLKHMATCH_MISMATCH 7.19.6 +CURLKHMATCH_MISSING 7.19.6 +CURLKHMATCH_OK 7.19.6 +CURLKHSTAT_DEFER 7.19.6 +CURLKHSTAT_FINE 7.19.6 +CURLKHSTAT_FINE_ADD_TO_FILE 7.19.6 +CURLKHSTAT_REJECT 7.19.6 +CURLKHTYPE_DSS 7.19.6 +CURLKHTYPE_RSA 7.19.6 +CURLKHTYPE_RSA1 7.19.6 +CURLKHTYPE_UNKNOWN 7.19.6 +CURLMOPT_MAXCONNECTS 7.16.3 +CURLMOPT_PIPELINING 7.16.0 +CURLMOPT_SOCKETDATA 7.15.4 +CURLMOPT_SOCKETFUNCTION 7.15.4 +CURLMOPT_TIMERDATA 7.16.0 +CURLMOPT_TIMERFUNCTION 7.16.0 +CURLMSG_DONE 7.9.6 +CURLMSG_NONE 7.9.6 +CURLM_BAD_EASY_HANDLE 7.9.6 +CURLM_BAD_HANDLE 7.9.6 +CURLM_BAD_SOCKET 7.15.4 +CURLM_CALL_MULTI_PERFORM 7.9.6 +CURLM_INTERNAL_ERROR 7.9.6 +CURLM_OK 7.9.6 +CURLM_OUT_OF_MEMORY 7.9.6 +CURLM_UNKNOWN_OPTION 7.15.4 +CURLOPTTYPE_FUNCTIONPOINT 7.1 +CURLOPTTYPE_LONG 7.1 +CURLOPTTYPE_OBJECTPOINT 7.1 +CURLOPTTYPE_OFF_T 7.11.0 +CURLOPT_ADDRESS_SCOPE 7.19.0 +CURLOPT_APPEND 7.16.4 +CURLOPT_AUTOREFERER 7.1 +CURLOPT_BUFFERSIZE 7.10 +CURLOPT_CAINFO 7.4.2 +CURLOPT_CAPATH 7.9.8 +CURLOPT_CERTINFO 7.19.1 +CURLOPT_CHUNK_BGN_FUNCTION 7.21.0 +CURLOPT_CHUNK_DATA 7.21.0 +CURLOPT_CHUNK_END_FUNCTION 7.21.0 +CURLOPT_CLOSEFUNCTION 7.7 7.11.1 7.15.4 +CURLOPT_CLOSEPOLICY 7.7 7.16.1 +CURLOPT_CONNECTTIMEOUT 7.7 +CURLOPT_CONNECTTIMEOUT_MS 7.16.2 +CURLOPT_CONNECT_ONLY 7.15.2 +CURLOPT_CONV_FROM_NETWORK_FUNCTION 7.15.4 +CURLOPT_CONV_FROM_UTF8_FUNCTION 7.15.4 +CURLOPT_CONV_TO_NETWORK_FUNCTION 7.15.4 +CURLOPT_COOKIE 7.1 +CURLOPT_COOKIEFILE 7.1 +CURLOPT_COOKIEJAR 7.9 +CURLOPT_COOKIELIST 7.17.1 +CURLOPT_COOKIESESSION 7.9.7 +CURLOPT_COPYPOSTFIELDS 7.17.1 +CURLOPT_CRLF 7.1 +CURLOPT_CRLFILE 7.19.0 +CURLOPT_CUSTOMREQUEST 7.1 +CURLOPT_DEBUGDATA 7.9.6 +CURLOPT_DEBUGFUNCTION 7.9.6 +CURLOPT_DIRLISTONLY 7.16.4 +CURLOPT_DNS_CACHE_TIMEOUT 7.9.3 +CURLOPT_DNS_USE_GLOBAL_CACHE 7.9.3 7.11.1 +CURLOPT_EGDSOCKET 7.7 +CURLOPT_ENCODING 7.12.2 +CURLOPT_ERRORBUFFER 7.1 +CURLOPT_FAILONERROR 7.1 +CURLOPT_FILE 7.1 7.9.7 +CURLOPT_FILETIME 7.5 +CURLOPT_FLAGS 7.1 - 7.9.2 +CURLOPT_FNMATCH_DATA 7.21.0 +CURLOPT_FNMATCH_FUNCTION 7.21.0 +CURLOPT_FOLLOWLOCATION 7.1 +CURLOPT_FORBID_REUSE 7.7 +CURLOPT_FRESH_CONNECT 7.7 +CURLOPT_FTPAPPEND 7.1 7.16.4 +CURLOPT_FTPASCII 7.1 7.11.1 7.15.4 +CURLOPT_FTPLISTONLY 7.1 7.16.4 +CURLOPT_FTPPORT 7.1 +CURLOPT_FTPSSLAUTH 7.12.2 +CURLOPT_FTP_ACCOUNT 7.13.1 +CURLOPT_FTP_ALTERNATIVE_TO_USER 7.15.5 +CURLOPT_FTP_CREATE_MISSING_DIRS 7.10.7 +CURLOPT_FTP_FILEMETHOD 7.15.1 +CURLOPT_FTP_RESPONSE_TIMEOUT 7.10.8 +CURLOPT_FTP_SKIP_PASV_IP 7.15.0 +CURLOPT_FTP_SSL 7.11.0 7.16.4 +CURLOPT_FTP_SSL_CCC 7.16.1 +CURLOPT_FTP_USE_EPRT 7.10.5 +CURLOPT_FTP_USE_EPSV 7.9.2 +CURLOPT_FTP_USE_PRET 7.20.0 +CURLOPT_HEADER 7.1 +CURLOPT_HEADERDATA 7.10 +CURLOPT_HEADERFUNCTION 7.7.2 +CURLOPT_HTTP200ALIASES 7.10.3 +CURLOPT_HTTPAUTH 7.10.6 +CURLOPT_HTTPGET 7.8.1 +CURLOPT_HTTPHEADER 7.1 +CURLOPT_HTTPPOST 7.1 +CURLOPT_HTTPPROXYTUNNEL 7.3 +CURLOPT_HTTPREQUEST 7.1 - 7.15.4 +CURLOPT_HTTP_CONTENT_DECODING 7.16.2 +CURLOPT_HTTP_TRANSFER_DECODING 7.16.2 +CURLOPT_HTTP_VERSION 7.9.1 +CURLOPT_IGNORE_CONTENT_LENGTH 7.14.1 +CURLOPT_INFILE 7.1 7.9.7 +CURLOPT_INFILESIZE 7.1 +CURLOPT_INFILESIZE_LARGE 7.11.0 +CURLOPT_INTERFACE 7.3 +CURLOPT_INTERLEAVEDATA 7.20.0 +CURLOPT_INTERLEAVEFUNCTION 7.20.0 +CURLOPT_IOCTLDATA 7.12.3 +CURLOPT_IOCTLFUNCTION 7.12.3 +CURLOPT_IPRESOLVE 7.10.8 +CURLOPT_ISSUERCERT 7.19.0 +CURLOPT_KEYPASSWD 7.17.0 +CURLOPT_KRB4LEVEL 7.3 7.17.0 +CURLOPT_KRBLEVEL 7.17.0 +CURLOPT_LOCALPORT 7.15.2 +CURLOPT_LOCALPORTRANGE 7.15.2 +CURLOPT_LOW_SPEED_LIMIT 7.1 +CURLOPT_LOW_SPEED_TIME 7.1 +CURLOPT_MAIL_FROM 7.20.0 +CURLOPT_MAIL_RCPT 7.20.0 +CURLOPT_MAXCONNECTS 7.7 +CURLOPT_MAXFILESIZE 7.10.8 +CURLOPT_MAXFILESIZE_LARGE 7.11.0 +CURLOPT_MAXREDIRS 7.5 +CURLOPT_MAX_RECV_SPEED_LARGE 7.15.5 +CURLOPT_MAX_SEND_SPEED_LARGE 7.15.5 +CURLOPT_MUTE 7.1 7.8 7.15.4 +CURLOPT_NETRC 7.1 +CURLOPT_NETRC_FILE 7.11.0 +CURLOPT_NEW_DIRECTORY_PERMS 7.16.4 +CURLOPT_NEW_FILE_PERMS 7.16.4 +CURLOPT_NOBODY 7.1 +CURLOPT_NOPROGRESS 7.1 +CURLOPT_NOPROXY 7.19.4 +CURLOPT_NOSIGNAL 7.10 +CURLOPT_OPENSOCKETDATA 7.17.1 +CURLOPT_OPENSOCKETFUNCTION 7.17.1 +CURLOPT_PASSWDDATA 7.1 7.11.1 7.15.4 +CURLOPT_PASSWDFUNCTION 7.1 7.11.1 7.15.4 +CURLOPT_PASSWORD 7.19.1 +CURLOPT_PASV_POST 7.12.1 - 7.13.0 +CURLOPT_PORT 7.1 +CURLOPT_POST 7.1 +CURLOPT_POST301 7.17.1 7.19.1 +CURLOPT_POSTFIELDS 7.1 +CURLOPT_POSTFIELDSIZE 7.2 +CURLOPT_POSTFIELDSIZE_LARGE 7.11.1 +CURLOPT_POSTQUOTE 7.1 +CURLOPT_POSTREDIR 7.19.1 +CURLOPT_PREQUOTE 7.9.5 +CURLOPT_PRIVATE 7.10.3 +CURLOPT_PROGRESSDATA 7.1 +CURLOPT_PROGRESSFUNCTION 7.1 +CURLOPT_PROGRESSMODE 7.1 - 7.9.2 +CURLOPT_PROTOCOLS 7.19.4 +CURLOPT_PROXY 7.1 +CURLOPT_PROXYAUTH 7.10.7 +CURLOPT_PROXYPASSWORD 7.19.1 +CURLOPT_PROXYPORT 7.1 +CURLOPT_PROXYTYPE 7.10 +CURLOPT_PROXYUSERNAME 7.19.1 +CURLOPT_PROXYUSERPWD 7.1 +CURLOPT_PROXY_TRANSFER_MODE 7.18.0 +CURLOPT_PUT 7.1 +CURLOPT_QUOTE 7.1 +CURLOPT_RANDOM_FILE 7.7 +CURLOPT_RANGE 7.1 +CURLOPT_READDATA 7.9.7 +CURLOPT_READFUNCTION 7.1 +CURLOPT_REDIR_PROTOCOLS 7.19.4 +CURLOPT_REFERER 7.1 +CURLOPT_RESOLVE 7.21.3 +CURLOPT_RESUME_FROM 7.1 +CURLOPT_RESUME_FROM_LARGE 7.11.0 +CURLOPT_RTSPHEADER 7.20.0 +CURLOPT_RTSP_CLIENT_CSEQ 7.20.0 +CURLOPT_RTSP_REQUEST 7.20.0 +CURLOPT_RTSP_SERVER_CSEQ 7.20.0 +CURLOPT_RTSP_SESSION_ID 7.20.0 +CURLOPT_RTSP_STREAM_URI 7.20.0 +CURLOPT_RTSP_TRANSPORT 7.20.0 +CURLOPT_SEEKDATA 7.18.1 +CURLOPT_SEEKFUNCTION 7.18.1 +CURLOPT_SERVER_RESPONSE_TIMEOUT 7.20.0 +CURLOPT_SHARE 7.10 +CURLOPT_SOCKOPTDATA 7.16.0 +CURLOPT_SOCKOPTFUNCTION 7.16.0 +CURLOPT_SOCKS5_GSSAPI_NEC 7.19.4 +CURLOPT_SOCKS5_GSSAPI_SERVICE 7.19.4 +CURLOPT_SOURCE_HOST 7.12.1 - 7.13.0 +CURLOPT_SOURCE_PATH 7.12.1 - 7.13.0 +CURLOPT_SOURCE_PORT 7.12.1 - 7.13.0 +CURLOPT_SOURCE_POSTQUOTE 7.12.1 - 7.15.4 +CURLOPT_SOURCE_PREQUOTE 7.12.1 - 7.15.4 +CURLOPT_SOURCE_QUOTE 7.13.0 - 7.15.4 +CURLOPT_SOURCE_URL 7.13.0 - 7.15.4 +CURLOPT_SOURCE_USERPWD 7.12.1 - 7.15.4 +CURLOPT_SSH_AUTH_TYPES 7.16.1 +CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 7.17.1 +CURLOPT_SSH_KEYDATA 7.19.6 +CURLOPT_SSH_KEYFUNCTION 7.19.6 +CURLOPT_SSH_KNOWNHOSTS 7.19.6 +CURLOPT_SSH_PRIVATE_KEYFILE 7.16.1 +CURLOPT_SSH_PUBLIC_KEYFILE 7.16.1 +CURLOPT_SSLCERT 7.1 +CURLOPT_SSLCERTPASSWD 7.17.0 +CURLOPT_SSLCERTTYPE 7.9.3 +CURLOPT_SSLENGINE 7.9.3 +CURLOPT_SSLENGINE_DEFAULT 7.9.3 +CURLOPT_SSLKEY 7.9.3 +CURLOPT_SSLKEYPASSWD 7.17.0 +CURLOPT_SSLKEYPASSWD 7.17.0 +CURLOPT_SSLKEYTYPE 7.9.3 +CURLOPT_SSLVERSION 7.1 +CURLOPT_SSL_CIPHER_LIST 7.9 +CURLOPT_SSL_CTX_DATA 7.10.6 +CURLOPT_SSL_CTX_FUNCTION 7.10.6 +CURLOPT_SSL_SESSIONID_CACHE 7.16.0 +CURLOPT_SSL_VERIFYHOST 7.8.1 +CURLOPT_SSL_VERIFYPEER 7.4.2 +CURLOPT_STDERR 7.1 +CURLOPT_TCP_NODELAY 7.11.2 +CURLOPT_TELNETOPTIONS 7.7 +CURLOPT_TFTP_BLKSIZE 7.19.4 +CURLOPT_TIMECONDITION 7.1 +CURLOPT_TIMEOUT 7.1 +CURLOPT_TIMEOUT_MS 7.16.2 +CURLOPT_TIMEVALUE 7.1 +CURLOPT_TRANSFERTEXT 7.11.1 +CURLOPT_UNRESTRICTED_AUTH 7.10.4 +CURLOPT_UPLOAD 7.1 +CURLOPT_URL 7.1 +CURLOPT_USERAGENT 7.1 +CURLOPT_USERNAME 7.19.1 +CURLOPT_USERPWD 7.1 +CURLOPT_USE_SSL 7.17.0 +CURLOPT_VERBOSE 7.1 +CURLOPT_WILDCARDMATCH 7.21.0 +CURLOPT_WRITEDATA 7.9.7 +CURLOPT_WRITEFUNCTION 7.1 +CURLOPT_WRITEHEADER 7.1 +CURLOPT_WRITEINFO 7.1 +CURLPAUSE_ALL 7.18.0 +CURLPAUSE_CONT 7.18.0 +CURLPAUSE_RECV 7.18.0 +CURLPAUSE_RECV_CONT 7.18.0 +CURLPAUSE_SEND 7.18.0 +CURLPAUSE_SEND_CONT 7.18.0 +CURLPROTO_ALL 7.19.4 +CURLPROTO_DICT 7.19.4 +CURLPROTO_FILE 7.19.4 +CURLPROTO_FTP 7.19.4 +CURLPROTO_FTPS 7.19.4 +CURLPROTO_GOPHER 7.21.2 +CURLPROTO_HTTP 7.19.4 +CURLPROTO_HTTPS 7.19.4 +CURLPROTO_IMAP 7.20.0 +CURLPROTO_IMAPS 7.20.0 +CURLPROTO_LDAP 7.19.4 +CURLPROTO_LDAPS 7.19.4 +CURLPROTO_POP3 7.20.0 +CURLPROTO_POP3S 7.20.0 +CURLPROTO_RTMP 7.21.0 +CURLPROTO_RTMPE 7.21.0 +CURLPROTO_RTMPS 7.21.0 +CURLPROTO_RTMPT 7.21.0 +CURLPROTO_RTMPTE 7.21.0 +CURLPROTO_RTMPTS 7.21.0 +CURLPROTO_RTSP 7.20.0 +CURLPROTO_SCP 7.19.4 +CURLPROTO_SFTP 7.19.4 +CURLPROTO_SMTP 7.20.0 +CURLPROTO_SMTPS 7.20.0 +CURLPROTO_TELNET 7.19.4 +CURLPROTO_TFTP 7.19.4 +CURLPROXY_HTTP 7.10 +CURLPROXY_HTTP_1_0 7.19.4 +CURLPROXY_SOCKS4 7.10 +CURLPROXY_SOCKS4A 7.18.0 +CURLPROXY_SOCKS5 7.10 +CURLPROXY_SOCKS5_HOSTNAME 7.18.0 +CURLSHE_BAD_OPTION 7.10.3 +CURLSHE_INVALID 7.10.3 +CURLSHE_IN_USE 7.10.3 +CURLSHE_NOMEM 7.10.3 +CURLSHE_OK 7.10.3 +CURLSHOPT_LOCKFUNC 7.10.3 +CURLSHOPT_NONE 7.10.3 +CURLSHOPT_SHARE 7.10.3 +CURLSHOPT_UNLOCKFUNC 7.10.3 +CURLSHOPT_UNSHARE 7.10.3 +CURLSHOPT_USERDATA 7.10.3 +CURLSOCKTYPE_IPCXN 7.15.6 +CURLSSH_AUTH_ANY 7.16.1 +CURLSSH_AUTH_DEFAULT 7.16.1 +CURLSSH_AUTH_HOST 7.16.1 +CURLSSH_AUTH_KEYBOARD 7.16.1 +CURLSSH_AUTH_NONE 7.16.1 +CURLSSH_AUTH_PASSWORD 7.16.1 +CURLSSH_AUTH_PUBLICKEY 7.16.1 +CURLUSESSL_ALL 7.17.0 +CURLUSESSL_ALL 7.17.0 +CURLUSESSL_CONTROL 7.17.0 +CURLUSESSL_CONTROL 7.17.0 +CURLUSESSL_NONE 7.17.0 +CURLUSESSL_NONE 7.17.0 +CURLUSESSL_TRY 7.17.0 +CURLUSESSL_TRY 7.17.0 +CURLVERSION_FIRST 7.10 +CURLVERSION_FOURTH 7.16.1 +CURLVERSION_NOW 7.10 +CURLVERSION_SECOND 7.11.1 +CURLVERSION_THIRD 7.12.0 +CURL_CHUNK_BGN_FUNC_FAIL 7.21.0 +CURL_CHUNK_BGN_FUNC_OK 7.21.0 +CURL_CHUNK_BGN_FUNC_SKIP 7.21.0 +CURL_CHUNK_END_FUNC_FAIL 7.21.0 +CURL_CHUNK_END_FUNC_OK 7.21.0 +CURL_ERROR_SIZE 7.1 +CURL_FNMATCHFUNC_FAIL 7.21.0 +CURL_FNMATCHFUNC_MATCH 7.21.0 +CURL_FNMATCHFUNC_NOMATCH 7.21.0 +CURL_FORMADD_DISABLED 7.12.1 +CURL_FORMADD_ILLEGAL_ARRAY 7.9.8 +CURL_FORMADD_INCOMPLETE 7.9.8 +CURL_FORMADD_MEMORY 7.9.8 +CURL_FORMADD_NULL 7.9.8 +CURL_FORMADD_OK 7.9.8 +CURL_FORMADD_OPTION_TWICE 7.9.8 +CURL_FORMADD_UNKNOWN_OPTION 7.9.8 +CURL_GLOBAL_ALL 7.8 +CURL_GLOBAL_DEFAULT 7.8 +CURL_GLOBAL_NOTHING 7.8 +CURL_GLOBAL_SSL 7.8 +CURL_GLOBAL_WIN32 7.8.1 +CURL_HTTP_VERSION_1_0 7.9.1 +CURL_HTTP_VERSION_1_1 7.9.1 +CURL_HTTP_VERSION_NONE 7.9.1 +CURL_IPRESOLVE_V4 7.10.8 +CURL_IPRESOLVE_V6 7.10.8 +CURL_IPRESOLVE_WHATEVER 7.10.8 +CURL_LOCK_ACCESS_NONE 7.10.3 +CURL_LOCK_ACCESS_SHARED 7.10.3 +CURL_LOCK_ACCESS_SINGLE 7.10.3 +CURL_LOCK_DATA_CONNECT 7.10.3 +CURL_LOCK_DATA_COOKIE 7.10.3 +CURL_LOCK_DATA_DNS 7.10.3 +CURL_LOCK_DATA_NONE 7.10.3 +CURL_LOCK_DATA_SHARE 7.10.4 +CURL_LOCK_DATA_SSL_SESSION 7.10.3 +CURL_MAX_HTTP_HEADER 7.19.7 +CURL_MAX_WRITE_SIZE 7.9.7 +CURL_NETRC_IGNORED 7.9.8 +CURL_NETRC_OPTIONAL 7.9.8 +CURL_NETRC_REQUIRED 7.9.8 +CURL_READFUNC_ABORT 7.12.1 +CURL_READFUNC_PAUSE 7.18.0 +CURL_REDIR_GET_ALL 7.19.1 +CURL_REDIR_POST_301 7.19.1 +CURL_REDIR_POST_302 7.19.1 +CURL_REDIR_POST_ALL 7.19.1 +CURL_RTSPREQ_ANNOUNCE 7.20.0 +CURL_RTSPREQ_DESCRIBE 7.20.0 +CURL_RTSPREQ_GET_PARAMETER 7.20.0 +CURL_RTSPREQ_NONE 7.20.0 +CURL_RTSPREQ_OPTIONS 7.20.0 +CURL_RTSPREQ_PAUSE 7.20.0 +CURL_RTSPREQ_PLAY 7.20.0 +CURL_RTSPREQ_RECEIVE 7.20.0 +CURL_RTSPREQ_RECORD 7.20.0 +CURL_RTSPREQ_SETUP 7.20.0 +CURL_RTSPREQ_SET_PARAMETER 7.20.0 +CURL_RTSPREQ_TEARDOWN 7.20.0 +CURL_SEEKFUNC_CANTSEEK 7.19.5 +CURL_SEEKFUNC_FAIL 7.19.5 +CURL_SEEKFUNC_OK 7.19.5 +CURL_SOCKET_BAD 7.14.0 +CURL_SSLVERSION_DEFAULT 7.9.2 +CURL_SSLVERSION_SSLv2 7.9.2 +CURL_SSLVERSION_SSLv3 7.9.2 +CURL_SSLVERSION_TLSv1 7.9.2 +CURL_TIMECOND_IFMODSINCE 7.9.7 +CURL_TIMECOND_IFUNMODSINCE 7.9.7 +CURL_TIMECOND_LASTMOD 7.9.7 +CURL_TIMECOND_NONE 7.9.7 +CURL_VERSION_ASYNCHDNS 7.10.7 +CURL_VERSION_CONV 7.15.4 +CURL_VERSION_CURLDEBUG 7.19.6 +CURL_VERSION_DEBUG 7.10.6 +CURL_VERSION_GSSNEGOTIATE 7.10.6 +CURL_VERSION_IDN 7.12.0 +CURL_VERSION_IPV6 7.10 +CURL_VERSION_KERBEROS4 7.10 +CURL_VERSION_LARGEFILE 7.11.1 +CURL_VERSION_LIBZ 7.10 +CURL_VERSION_NTLM 7.10.6 +CURL_VERSION_SPNEGO 7.10.8 +CURL_VERSION_SSL 7.10 +CURL_VERSION_SSPI 7.13.2 +CURL_WRITEFUNC_PAUSE 7.18.0 diff --git a/template/Easy.pm.tmpl b/template/Easy.pm.tmpl index 4ece4cb..26fa853 100644 --- a/template/Easy.pm.tmpl +++ b/template/Easy.pm.tmpl @@ -4,7 +4,7 @@ use strict; use warnings; use Carp; -our $VERSION = '4.14'; +our $VERSION = '4.15'; use WWW::Curl (); use Exporter (); diff --git a/template/Share.pm.tmpl b/template/Share.pm.tmpl index cc34937..3c73db2 100644 --- a/template/Share.pm.tmpl +++ b/template/Share.pm.tmpl @@ -20,8 +20,8 @@ sub AUTOLOAD { ( my $constname = $AUTOLOAD ) =~ s/.*:://; my $value = constant( $constname ); - if($!) { - croak("Undefined subroutine &$AUTOLOAD failed"); + if ($!) { + croak("Undefined subroutine &$AUTOLOAD failed for reasons of $!, constname was $constname, value was: $value"); } { |