package WWW::Curl::Easy;

use strict;
use warnings;
use Carp;

our $VERSION = '4.13';

use WWW::Curl ();
use Exporter  ();

our @ISA = qw(Exporter);

# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

our @EXPORT = qw(
CURLOPT_ACCEPTTIMEOUT_MS
CURLOPT_ACCEPT_ENCODING
CURLOPT_ADDRESS_SCOPE
CURLOPT_APPEND
CURLOPT_AUTOREFERER
CURLOPT_BUFFERSIZE
CURLOPT_CAINFO
CURLOPT_CAPATH
CURLOPT_CERTINFO
CURLOPT_CHUNK_BGN_FUNCTION
CURLOPT_CHUNK_DATA
CURLOPT_CHUNK_END_FUNCTION
CURLOPT_CLOSEPOLICY
CURLOPT_CLOSESOCKETDATA
CURLOPT_CLOSESOCKETFUNCTION
CURLOPT_CONNECTTIMEOUT
CURLOPT_CONNECTTIMEOUT_MS
CURLOPT_CONNECT_ONLY
CURLOPT_CONV_FROM_NETWORK_FUNCTION
CURLOPT_CONV_FROM_UTF8_FUNCTION
CURLOPT_CONV_TO_NETWORK_FUNCTION
CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
CURLOPT_COOKIELIST
CURLOPT_COOKIESESSION
CURLOPT_COPYPOSTFIELDS
CURLOPT_CRLF
CURLOPT_CRLFILE
CURLOPT_CUSTOMREQUEST
CURLOPT_DEBUGDATA
CURLOPT_DEBUGFUNCTION
CURLOPT_DIRLISTONLY
CURLOPT_DNS_CACHE_TIMEOUT
CURLOPT_DNS_SERVERS
CURLOPT_DNS_USE_GLOBAL_CACHE
CURLOPT_EGDSOCKET
CURLOPT_ENCODING
CURLOPT_ERRORBUFFER
CURLOPT_FAILONERROR
CURLOPT_FILE
CURLOPT_FILETIME
CURLOPT_FNMATCH_DATA
CURLOPT_FNMATCH_FUNCTION
CURLOPT_FOLLOWLOCATION
CURLOPT_FORBID_REUSE
CURLOPT_FRESH_CONNECT
CURLOPT_FTPAPPEND
CURLOPT_FTPLISTONLY
CURLOPT_FTPPORT
CURLOPT_FTPSSLAUTH
CURLOPT_FTP_ACCOUNT
CURLOPT_FTP_ALTERNATIVE_TO_USER
CURLOPT_FTP_CREATE_MISSING_DIRS
CURLOPT_FTP_FILEMETHOD
CURLOPT_FTP_RESPONSE_TIMEOUT
CURLOPT_FTP_SKIP_PASV_IP
CURLOPT_FTP_SSL
CURLOPT_FTP_SSL_CCC
CURLOPT_FTP_USE_EPRT
CURLOPT_FTP_USE_EPSV
CURLOPT_FTP_USE_PRET
CURLOPT_GSSAPI_DELEGATION
CURLOPT_HEADER
CURLOPT_HEADERDATA
CURLOPT_HEADERFUNCTION
CURLOPT_HTTP200ALIASES
CURLOPT_HTTPAUTH
CURLOPT_HTTPGET
CURLOPT_HTTPHEADER
CURLOPT_HTTPPOST
CURLOPT_HTTPPROXYTUNNEL
CURLOPT_HTTP_CONTENT_DECODING
CURLOPT_HTTP_TRANSFER_DECODING
CURLOPT_HTTP_VERSION
CURLOPT_IGNORE_CONTENT_LENGTH
CURLOPT_INFILE
CURLOPT_INFILESIZE
CURLOPT_INFILESIZE_LARGE
CURLOPT_INTERFACE
CURLOPT_INTERLEAVEDATA
CURLOPT_INTERLEAVEFUNCTION
CURLOPT_IOCTLDATA
CURLOPT_IOCTLFUNCTION
CURLOPT_IPRESOLVE
CURLOPT_ISSUERCERT
CURLOPT_KEYPASSWD
CURLOPT_KRB4LEVEL
CURLOPT_KRBLEVEL
CURLOPT_LOCALPORT
CURLOPT_LOCALPORTRANGE
CURLOPT_LOW_SPEED_LIMIT
CURLOPT_LOW_SPEED_TIME
CURLOPT_MAIL_FROM
CURLOPT_MAIL_RCPT
CURLOPT_MAXCONNECTS
CURLOPT_MAXFILESIZE
CURLOPT_MAXFILESIZE_LARGE
CURLOPT_MAXREDIRS
CURLOPT_MAX_RECV_SPEED_LARGE
CURLOPT_MAX_SEND_SPEED_LARGE
CURLOPT_NETRC
CURLOPT_NETRC_FILE
CURLOPT_NEW_DIRECTORY_PERMS
CURLOPT_NEW_FILE_PERMS
CURLOPT_NOBODY
CURLOPT_NOPROGRESS
CURLOPT_NOPROXY
CURLOPT_NOSIGNAL
CURLOPT_OPENSOCKETDATA
CURLOPT_OPENSOCKETFUNCTION
CURLOPT_PASSWORD
CURLOPT_PORT
CURLOPT_POST
CURLOPT_POST301
CURLOPT_POSTFIELDS
CURLOPT_POSTFIELDSIZE
CURLOPT_POSTFIELDSIZE_LARGE
CURLOPT_POSTQUOTE
CURLOPT_POSTREDIR
CURLOPT_PREQUOTE
CURLOPT_PRIVATE
CURLOPT_PROGRESSDATA
CURLOPT_PROGRESSFUNCTION
CURLOPT_PROTOCOLS
CURLOPT_PROXY
CURLOPT_PROXYAUTH
CURLOPT_PROXYPASSWORD
CURLOPT_PROXYPORT
CURLOPT_PROXYTYPE
CURLOPT_PROXYUSERNAME
CURLOPT_PROXYUSERPWD
CURLOPT_PROXY_TRANSFER_MODE
CURLOPT_PUT
CURLOPT_QUOTE
CURLOPT_RANDOM_FILE
CURLOPT_RANGE
CURLOPT_READDATA
CURLOPT_READFUNCTION
CURLOPT_REDIR_PROTOCOLS
CURLOPT_REFERER
CURLOPT_RESOLVE
CURLOPT_RESUME_FROM
CURLOPT_RESUME_FROM_LARGE
CURLOPT_RTSPHEADER
CURLOPT_RTSP_CLIENT_CSEQ
CURLOPT_RTSP_REQUEST
CURLOPT_RTSP_SERVER_CSEQ
CURLOPT_RTSP_SESSION_ID
CURLOPT_RTSP_STREAM_URI
CURLOPT_RTSP_TRANSPORT
CURLOPT_SEEKDATA
CURLOPT_SEEKFUNCTION
CURLOPT_SERVER_RESPONSE_TIMEOUT
CURLOPT_SHARE
CURLOPT_SOCKOPTDATA
CURLOPT_SOCKOPTFUNCTION
CURLOPT_SOCKS5_GSSAPI_NEC
CURLOPT_SOCKS5_GSSAPI_SERVICE
CURLOPT_SSH_AUTH_TYPES
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
CURLOPT_SSH_KEYDATA
CURLOPT_SSH_KEYFUNCTION
CURLOPT_SSH_KNOWNHOSTS
CURLOPT_SSH_PRIVATE_KEYFILE
CURLOPT_SSH_PUBLIC_KEYFILE
CURLOPT_SSLCERT
CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERTTYPE
CURLOPT_SSLENGINE
CURLOPT_SSLENGINE_DEFAULT
CURLOPT_SSLKEY
CURLOPT_SSLKEYPASSWD
CURLOPT_SSLKEYTYPE
CURLOPT_SSLVERSION
CURLOPT_SSL_CIPHER_LIST
CURLOPT_SSL_CTX_DATA
CURLOPT_SSL_CTX_FUNCTION
CURLOPT_SSL_SESSIONID_CACHE
CURLOPT_SSL_VERIFYHOST
CURLOPT_SSL_VERIFYPEER
CURLOPT_STDERR
CURLOPT_TCP_NODELAY
CURLOPT_TELNETOPTIONS
CURLOPT_TFTP_BLKSIZE
CURLOPT_TIMECONDITION
CURLOPT_TIMEOUT
CURLOPT_TIMEOUT_MS
CURLOPT_TIMEVALUE
CURLOPT_TLSAUTH_PASSWORD
CURLOPT_TLSAUTH_TYPE
CURLOPT_TLSAUTH_USERNAME
CURLOPT_TRANSFERTEXT
CURLOPT_TRANSFER_ENCODING
CURLOPT_UNRESTRICTED_AUTH
CURLOPT_UPLOAD
CURLOPT_URL
CURLOPT_USERAGENT
CURLOPT_USERNAME
CURLOPT_USERPWD
CURLOPT_USE_SSL
CURLOPT_VERBOSE
CURLOPT_WILDCARDMATCH
CURLOPT_WRITEDATA
CURLOPT_WRITEFUNCTION
CURLOPT_WRITEHEADER
CURLOPT_WRITEINFO
CURLINFO_APPCONNECT_TIME
CURLINFO_CERTINFO
CURLINFO_CONDITION_UNMET
CURLINFO_CONNECT_TIME
CURLINFO_CONTENT_LENGTH_DOWNLOAD
CURLINFO_CONTENT_LENGTH_UPLOAD
CURLINFO_CONTENT_TYPE
CURLINFO_COOKIELIST
CURLINFO_DATA_IN
CURLINFO_DATA_OUT
CURLINFO_EFFECTIVE_URL
CURLINFO_END
CURLINFO_FILETIME
CURLINFO_FTP_ENTRY_PATH
CURLINFO_HEADER_IN
CURLINFO_HEADER_OUT
CURLINFO_HEADER_SIZE
CURLINFO_HTTPAUTH_AVAIL
CURLINFO_HTTP_CODE
CURLINFO_HTTP_CONNECTCODE
CURLINFO_LASTONE
CURLINFO_LASTSOCKET
CURLINFO_LOCAL_IP
CURLINFO_LOCAL_PORT
CURLINFO_NAMELOOKUP_TIME
CURLINFO_NONE
CURLINFO_NUM_CONNECTS
CURLINFO_OS_ERRNO
CURLINFO_PRETRANSFER_TIME
CURLINFO_PRIMARY_IP
CURLINFO_PRIMARY_PORT
CURLINFO_PRIVATE
CURLINFO_PROXYAUTH_AVAIL
CURLINFO_REDIRECT_COUNT
CURLINFO_REDIRECT_TIME
CURLINFO_REDIRECT_URL
CURLINFO_REQUEST_SIZE
CURLINFO_RESPONSE_CODE
CURLINFO_RTSP_CLIENT_CSEQ
CURLINFO_RTSP_CSEQ_RECV
CURLINFO_RTSP_SERVER_CSEQ
CURLINFO_RTSP_SESSION_ID
CURLINFO_SIZE_DOWNLOAD
CURLINFO_SIZE_UPLOAD
CURLINFO_SPEED_DOWNLOAD
CURLINFO_SPEED_UPLOAD
CURLINFO_SSL_DATA_IN
CURLINFO_SSL_DATA_OUT
CURLINFO_SSL_ENGINES
CURLINFO_SSL_VERIFYRESULT
CURLINFO_STARTTRANSFER_TIME
CURLINFO_TEXT
CURLINFO_TOTAL_TIME
CURLE_ABORTED_BY_CALLBACK
CURLE_AGAIN
CURLE_BAD_CONTENT_ENCODING
CURLE_BAD_DOWNLOAD_RESUME
CURLE_BAD_FUNCTION_ARGUMENT
CURLE_CHUNK_FAILED
CURLE_CONV_FAILED
CURLE_CONV_REQD
CURLE_COULDNT_CONNECT
CURLE_COULDNT_RESOLVE_HOST
CURLE_COULDNT_RESOLVE_PROXY
CURLE_FAILED_INIT
CURLE_FILESIZE_EXCEEDED
CURLE_FILE_COULDNT_READ_FILE
CURLE_FTP_ACCEPT_FAILED
CURLE_FTP_ACCEPT_TIMEOUT
CURLE_FTP_BAD_FILE_LIST
CURLE_FTP_CANT_GET_HOST
CURLE_FTP_COULDNT_RETR_FILE
CURLE_FTP_COULDNT_SET_TYPE
CURLE_FTP_COULDNT_USE_REST
CURLE_FTP_PORT_FAILED
CURLE_FTP_PRET_FAILED
CURLE_FTP_WEIRD_227_FORMAT
CURLE_FTP_WEIRD_PASS_REPLY
CURLE_FTP_WEIRD_PASV_REPLY
CURLE_FTP_WEIRD_SERVER_REPLY
CURLE_FUNCTION_NOT_FOUND
CURLE_GOT_NOTHING
CURLE_HTTP_POST_ERROR
CURLE_HTTP_RETURNED_ERROR
CURLE_INTERFACE_FAILED
CURLE_LDAP_CANNOT_BIND
CURLE_LDAP_INVALID_URL
CURLE_LDAP_SEARCH_FAILED
CURLE_LOGIN_DENIED
CURLE_NOT_BUILT_IN
CURLE_OBSOLETE16
CURLE_OBSOLETE20
CURLE_OBSOLETE24
CURLE_OBSOLETE29
CURLE_OBSOLETE32
CURLE_OBSOLETE40
CURLE_OBSOLETE44
CURLE_OBSOLETE46
CURLE_OBSOLETE50
CURLE_OBSOLETE57
CURLE_OK
CURLE_OPERATION_TIMEDOUT
CURLE_OUT_OF_MEMORY
CURLE_PARTIAL_FILE
CURLE_PEER_FAILED_VERIFICATION
CURLE_QUOTE_ERROR
CURLE_RANGE_ERROR
CURLE_READ_ERROR
CURLE_RECV_ERROR
CURLE_REMOTE_ACCESS_DENIED
CURLE_REMOTE_DISK_FULL
CURLE_REMOTE_FILE_EXISTS
CURLE_REMOTE_FILE_NOT_FOUND
CURLE_RTSP_CSEQ_ERROR
CURLE_RTSP_SESSION_ERROR
CURLE_SEND_ERROR
CURLE_SEND_FAIL_REWIND
CURLE_SSH
CURLE_SSL_CACERT
CURLE_SSL_CACERT_BADFILE
CURLE_SSL_CERTPROBLEM
CURLE_SSL_CIPHER
CURLE_SSL_CONNECT_ERROR
CURLE_SSL_CRL_BADFILE
CURLE_SSL_ENGINE_INITFAILED
CURLE_SSL_ENGINE_NOTFOUND
CURLE_SSL_ENGINE_SETFAILED
CURLE_SSL_ISSUER_ERROR
CURLE_SSL_SHUTDOWN_FAILED
CURLE_TELNET_OPTION_SYNTAX
CURLE_TFTP_ILLEGAL
CURLE_TFTP_NOSUCHUSER
CURLE_TFTP_NOTFOUND
CURLE_TFTP_PERM
CURLE_TFTP_UNKNOWNID
CURLE_TOO_MANY_REDIRECTS
CURLE_UNKNOWN_OPTION
CURLE_UNSUPPORTED_PROTOCOL
CURLE_UPLOAD_FAILED
CURLE_URL_MALFORMAT
CURLE_USE_SSL_FAILED
CURLE_WRITE_ERROR
CURL_NETRC_IGNORED
CURL_NETRC_LAST
CURL_NETRC_OPTIONAL
CURL_NETRC_REQUIRED
CURLPROXY_HTTP
CURLPROXY_HTTP_1_0
CURLPROXY_SOCKS4
CURLPROXY_SOCKS4A
CURLPROXY_SOCKS5
CURLPROXY_SOCKS5_HOSTNAME
);

$WWW::Curl::Easy::headers = "";
$WWW::Curl::Easy::content = "";

sub const_string {
	my ($self, $constant) = @_;
	return constant($constant);
}

sub AUTOLOAD {
    our $AUTOLOAD;
    # This AUTOLOAD is used to 'autoload' constants from the constant()
    # XS function.

    ( my $constname = $AUTOLOAD ) =~ s/.*:://;
    my $value = constant( $constname );
    if($!) {
        croak("Undefined subroutine &$AUTOLOAD called");
    }

    {
        no strict 'refs';
        *{$AUTOLOAD} = sub { $value };
    }
    return $value;
}

1;

__END__

Copyright (C) 2000-2005,2008 Daniel Stenberg, Cris Bailiff,
Sebastian Riedel, et al.
 
You may opt to use, copy, modify, merge, publish, distribute and/or sell
copies of the Software, and permit persons to whom the Software is furnished
to do so, under the terms of the MPL or the MIT/X-derivate licenses. You may
pick one of these licenses.
