curlhs-0.1.1: bindings to libcurl, the multiprotocol file transfer library

Portabilitynon-portable
Stabilityexperimental
MaintainerKrzysztof Kardzis <kkardzis@gmail.com>
Safe HaskellNone

Network.CURL720

Contents

Description

Synopsis

Documentation

To use functions from this module it is required to explicitly link with libcurl/7.20 (or newer) at runtime. So first things first:

 main = withlib CURL720 $ do
   ...

Without such statement any use of the 'curl*' functions will fail. Runtime linker will first try to load libcurl binary image into memory and after succesful loading, library version will be checked. Standard dynamic loader search path is used to locate required so/dll/dylib. Just install libcurl.so/dll/dylib into one of the searched places (could be current directory).

Global interface

Version info

Easy interface

See http://curl.haxx.se/libcurl/c/libcurl-easy.html for easy interface overview.

Init / Cleanup

curl_easy_reset :: CURL -> IO ()Source

Reset all options of a libcurl session handle (http://curl.haxx.se/libcurl/c/curl_easy_reset.html).

data CURL Source

Instances

Transfer

Get info

data CURLinfo a whereSource

Constructors

CURLINFO_EFFECTIVE_URL :: CURLinfo String 
CURLINFO_RESPONSE_CODE :: CURLinfo CLong 
CURLINFO_HTTP_CONNECTCODE :: CURLinfo CLong 
CURLINFO_FILETIME :: CURLinfo (Maybe UTCTime) 
CURLINFO_TOTAL_TIME :: CURLinfo Double 
CURLINFO_NAMELOOKUP_TIME :: CURLinfo Double 
CURLINFO_CONNECT_TIME :: CURLinfo Double 
CURLINFO_APPCONNECT_TIME :: CURLinfo Double 
CURLINFO_PRETRANSFER_TIME :: CURLinfo Double 
CURLINFO_STARTTRANSFER_TIME :: CURLinfo Double 
CURLINFO_REDIRECT_TIME :: CURLinfo Double 
CURLINFO_REDIRECT_COUNT :: CURLinfo CLong 
CURLINFO_REDIRECT_URL :: CURLinfo String 
CURLINFO_SIZE_UPLOAD :: CURLinfo Double 
CURLINFO_SIZE_DOWNLOAD :: CURLinfo Double 
CURLINFO_SPEED_DOWNLOAD :: CURLinfo Double 
CURLINFO_SPEED_UPLOAD :: CURLinfo Double 
CURLINFO_HEADER_SIZE :: CURLinfo CLong 
CURLINFO_REQUEST_SIZE :: CURLinfo CLong 
CURLINFO_SSL_VERIFYRESULT :: CURLinfo CLong 
CURLINFO_SSL_ENGINES :: CURLinfo [String] 
CURLINFO_CONTENT_LENGTH_DOWNLOAD :: CURLinfo Double 
CURLINFO_CONTENT_LENGTH_UPLOAD :: CURLinfo Double 
CURLINFO_CONTENT_TYPE :: CURLinfo String 
CURLINFO_HTTPAUTH_AVAIL :: CURLinfo [CURLauth] 
CURLINFO_PROXYAUTH_AVAIL :: CURLinfo [CURLauth] 
CURLINFO_OS_ERRNO :: CURLinfo CLong 
CURLINFO_NUM_CONNECTS :: CURLinfo CLong 
CURLINFO_PRIMARY_IP :: CURLinfo String 
CURLINFO_COOKIELIST :: CURLinfo [String] 
CURLINFO_LASTSOCKET :: CURLinfo CLong 
CURLINFO_FTP_ENTRY_PATH :: CURLinfo String 
CURLINFO_CERTINFO :: CURLinfo [[String]] 
CURLINFO_CONDITION_UNMET :: CURLinfo Bool 
CURLINFO_RTSP_SESSION_ID :: CURLinfo String 
CURLINFO_RTSP_CLIENT_CSEQ :: CURLinfo CLong 
CURLINFO_RTSP_SERVER_CSEQ :: CURLinfo CLong 
CURLINFO_RTSP_CSEQ_RECV :: CURLinfo CLong 

Set options

data CURLoption Source

Constructors

CURLOPT_VERBOSE Bool 
CURLOPT_HEADER Bool 
CURLOPT_NOPROGRESS Bool 
CURLOPT_NOSIGNAL Bool 
CURLOPT_WRITEFUNCTION (Maybe CURL_write_callback) 
CURLOPT_READFUNCTION (Maybe CURL_read_callback) 
CURLOPT_FAILONERROR Bool 
CURLOPT_URL String 
CURLOPT_PROTOCOLS [CURLproto] 
CURLOPT_REDIR_PROTOCOLS [CURLproto] 
CURLOPT_PROXY String 
CURLOPT_PROXYPORT CLong 
CURLOPT_PROXYTYPE CURLproxy 
CURLOPT_NOPROXY String 
CURLOPT_HTTPPROXYTUNNEL Bool 
CURLOPT_SOCKS5_GSSAPI_SERVICE String 
CURLOPT_SOCKS5_GSSAPI_NEC Bool 
CURLOPT_INTERFACE String 
CURLOPT_LOCALPORT CLong 
CURLOPT_LOCALPORTRANGE CLong 
CURLOPT_DNS_CACHE_TIMEOUT CLong 
CURLOPT_BUFFERSIZE CLong 
CURLOPT_PORT CLong 
CURLOPT_TCP_NODELAY Bool 
CURLOPT_ADDRESS_SCOPE CLong 
CURLOPT_NETRC CURLnetrc 
CURLOPT_NETRC_FILE FilePath 
CURLOPT_USERPWD String 
CURLOPT_PROXYUSERPWD String 
CURLOPT_USERNAME String 
CURLOPT_PASSWORD String 
CURLOPT_PROXYUSERNAME String 
CURLOPT_PROXYPASSWORD String 
CURLOPT_HTTPAUTH [CURLauth] 
CURLOPT_PROXYAUTH [CURLauth] 
CURLOPT_AUTOREFERER Bool 
CURLOPT_ACCEPT_ENCODING String 
CURLOPT_FOLLOWLOCATION Bool 
CURLOPT_UNRESTRICTED_AUTH Bool 
CURLOPT_MAXREDIRS CLong 
CURLOPT_POSTREDIR [CURLredir] 
CURLOPT_PUT Bool 
CURLOPT_POST Bool 
CURLOPT_POSTFIELDSIZE CLong 
CURLOPT_POSTFIELDSIZE_LARGE Int64 
CURLOPT_COPYPOSTFIELDS String 
CURLOPT_REFERER String 
CURLOPT_USERAGENT String 
CURLOPT_HTTPHEADER [String] 
CURLOPT_HTTP200ALIASES [String] 
CURLOPT_COOKIE String 
CURLOPT_COOKIEFILE FilePath 
CURLOPT_COOKIEJAR FilePath 
CURLOPT_COOKIESESSION Bool 
CURLOPT_COOKIELIST String 
CURLOPT_HTTPGET Bool 
CURLOPT_HTTP_VERSION CURLhttpver 
CURLOPT_IGNORE_CONTENT_LENGTH Bool 
CURLOPT_HTTP_CONTENT_DECODING Bool 
CURLOPT_HTTP_TRANSFER_DECODING Bool 
CURLOPT_MAIL_FROM String 
CURLOPT_MAIL_RCPT [String] 
CURLOPT_TFTP_BLKSIZE CLong 
CURLOPT_FTPPORT String 
CURLOPT_QUOTE [String] 
CURLOPT_POSTQUOTE [String] 
CURLOPT_PREQUOTE [String] 
CURLOPT_DIRLISTONLY Bool 
CURLOPT_APPEND Bool 
CURLOPT_FTP_USE_EPRT Bool 
CURLOPT_FTP_USE_EPSV Bool 
CURLOPT_FTP_USE_PRET Bool 
CURLOPT_FTP_CREATE_MISSING_DIRS CURLftpcreate 
CURLOPT_FTP_RESPONSE_TIMEOUT CLong 
CURLOPT_FTP_ALTERNATIVE_TO_USER String 
CURLOPT_FTP_SKIP_PASV_IP Bool 
CURLOPT_FTPSSLAUTH CURLftpauth 
CURLOPT_FTP_SSL_CCC CURLftpssl 
CURLOPT_FTP_ACCOUNT String 
CURLOPT_FTP_FILEMETHOD CURLftpmethod 
CURLOPT_RTSP_REQUEST CURLrtspreq 
CURLOPT_RTSP_SESSION_ID String 
CURLOPT_RTSP_STREAM_URI String 
CURLOPT_RTSP_TRANSPORT String 
CURLOPT_RTSP_HEADER [String] 
CURLOPT_RTSP_CLIENT_CSEQ CLong 
CURLOPT_RTSP_SERVER_CSEQ CLong 
CURLOPT_TRANSFERTEXT Bool 
CURLOPT_PROXY_TRANSFER_MODE Bool 
CURLOPT_CRLF Bool 
CURLOPT_RANGE String 
CURLOPT_RESUME_FROM CLong 
CURLOPT_RESUME_FROM_LARGE Int64 
CURLOPT_CUSTOMREQUEST String 
CURLOPT_FILETIME Bool 
CURLOPT_NOBODY Bool 
CURLOPT_INFILESIZE CLong 
CURLOPT_INFILESIZE_LARGE Int64 
CURLOPT_UPLOAD Bool 
CURLOPT_MAXFILESIZE CLong 
CURLOPT_MAXFILESIZE_LARGE Int64 
CURLOPT_TIMECONDITION CURLtimecond 
CURLOPT_TIMEVALUE UTCTime 
CURLOPT_TIMEOUT CLong 
CURLOPT_TIMEOUT_MS CLong 
CURLOPT_LOW_SPEED_LIMIT CLong 
CURLOPT_LOW_SPEED_TIME CLong 
CURLOPT_MAX_SEND_SPEED_LARGE Int64 
CURLOPT_MAX_RECV_SPEED_LARGE Int64 
CURLOPT_MAXCONNECTS CLong 
CURLOPT_FRESH_CONNECT Bool 
CURLOPT_FORBID_REUSE Bool 
CURLOPT_CONNECTTIMEOUT CLong 
CURLOPT_CONNECTTIMEOUT_MS CLong 
CURLOPT_IPRESOLVE CURLipresolve 
CURLOPT_CONNECT_ONLY Bool 
CURLOPT_USE_SSL CURLusessl 
CURLOPT_SSLCERT FilePath 
CURLOPT_SSLCERTTYPE String 
CURLOPT_SSLKEY FilePath 
CURLOPT_SSLKEYTYPE String 
CURLOPT_KEYPASSWD String 
CURLOPT_SSLENGINE String 
CURLOPT_SSLENGINE_DEFAULT Bool 
CURLOPT_SSLVERSION CURLsslver 
CURLOPT_SSL_VERIFYPEER Bool 
CURLOPT_CAINFO FilePath 
CURLOPT_ISSUERCERT FilePath 
CURLOPT_CAPATH FilePath 
CURLOPT_CRLFILE FilePath 
CURLOPT_SSL_VERIFYHOST CLong 
CURLOPT_CERTINFO Bool 
CURLOPT_RANDOM_FILE FilePath 
CURLOPT_EGDSOCKET String 
CURLOPT_SSL_CIPHER_LIST String 
CURLOPT_SSL_SESSIONID_CACHE Bool 
CURLOPT_KRBLEVEL String 
CURLOPT_SSH_AUTH_TYPES [CURLsshauth] 
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 String 
CURLOPT_SSH_PUBLIC_KEYFILE FilePath 
CURLOPT_SSH_PRIVATE_KEYFILE FilePath 
CURLOPT_SSH_KNOWNHOSTS FilePath 
CURLOPT_SHARE (Maybe CURLSH) 
CURLOPT_NEW_FILE_PERMS CLong 
CURLOPT_NEW_DIRECTORY_PERMS CLong 
CURLOPT_TELNETOPTIONS [String] 

Callbacks

Constants

Exceptions

More about error codes in libcurl on http://curl.haxx.se/libcurl/c/libcurl-errors.html

data CURLC Source

Constructors

CURLE_UNSUPPORTED_PROTOCOL 
CURLE_FAILED_INIT 
CURLE_URL_MALFORMAT 
CURLE_NOT_BUILT_IN 
CURLE_COULDNT_RESOLVE_PROXY 
CURLE_COULDNT_RESOLVE_HOST 
CURLE_COULDNT_CONNECT 
CURLE_FTP_WEIRD_SERVER_REPLY 
CURLE_REMOTE_ACCESS_DENIED 
CURLE_FTP_ACCEPT_FAILED 
CURLE_FTP_WEIRD_PASS_REPLY 
CURLE_FTP_ACCEPT_TIMEOUT 
CURLE_FTP_WEIRD_PASV_REPLY 
CURLE_FTP_WEIRD_227_FORMAT 
CURLE_FTP_CANT_GET_HOST 
CURLE_FTP_COULDNT_SET_TYPE 
CURLE_PARTIAL_FILE 
CURLE_FTP_COULDNT_RETR_FILE 
CURLE_QUOTE_ERROR 
CURLE_HTTP_RETURNED_ERROR 
CURLE_WRITE_ERROR 
CURLE_UPLOAD_FAILED 
CURLE_READ_ERROR 
CURLE_OUT_OF_MEMORY 
CURLE_OPERATION_TIMEDOUT 
CURLE_FTP_PORT_FAILED 
CURLE_FTP_COULDNT_USE_REST 
CURLE_RANGE_ERROR 
CURLE_HTTP_POST_ERROR 
CURLE_SSL_CONNECT_ERROR 
CURLE_BAD_DOWNLOAD_RESUME 
CURLE_FILE_COULDNT_READ_FILE 
CURLE_LDAP_CANNOT_BIND 
CURLE_LDAP_SEARCH_FAILED 
CURLE_FUNCTION_NOT_FOUND 
CURLE_ABORTED_BY_CALLBACK 
CURLE_BAD_FUNCTION_ARGUMENT 
CURLE_INTERFACE_FAILED 
CURLE_TOO_MANY_REDIRECTS 
CURLE_UNKNOWN_OPTION 
CURLE_TELNET_OPTION_SYNTAX 
CURLE_PEER_FAILED_VERIFICATION 
CURLE_GOT_NOTHING 
CURLE_SSL_ENGINE_NOTFOUND 
CURLE_SSL_ENGINE_SETFAILED 
CURLE_SEND_ERROR 
CURLE_RECV_ERROR 
CURLE_SSL_CERTPROBLEM 
CURLE_SSL_CIPHER 
CURLE_SSL_CACERT 
CURLE_BAD_CONTENT_ENCODING 
CURLE_LDAP_INVALID_URL 
CURLE_FILESIZE_EXCEEDED 
CURLE_USE_SSL_FAILED 
CURLE_SEND_FAIL_REWIND 
CURLE_SSL_ENGINE_INITFAILED 
CURLE_LOGIN_DENIED 
CURLE_TFTP_NOTFOUND 
CURLE_TFTP_PERM 
CURLE_REMOTE_DISK_FULL 
CURLE_TFTP_ILLEGAL 
CURLE_TFTP_UNKNOWNID 
CURLE_REMOTE_FILE_EXISTS 
CURLE_TFTP_NOSUCHUSER 
CURLE_CONV_FAILED 
CURLE_CONV_REQD 
CURLE_SSL_CACERT_BADFILE 
CURLE_REMOTE_FILE_NOT_FOUND 
CURLE_SSH 
CURLE_SSL_SHUTDOWN_FAILED 
CURLE_AGAIN 
CURLE_SSL_CRL_BADFILE 
CURLE_SSL_ISSUER_ERROR 
CURLE_FTP_PRET_FAILED 
CURLE_RTSP_CSEQ_ERROR 
CURLE_RTSP_SESSION_ERROR 
CURLE_FTP_BAD_FILE_LIST 
CURLE_CHUNK_FAILED 
CURLE_UNKNOWN_ERROR 

Instances

Multi interface

See http://curl.haxx.se/libcurl/c/libcurl-multi.html for multi interface overview.

TODO

Share interface

See http://curl.haxx.se/libcurl/c/libcurl-share.html for share interface overview.

Init / Cleanup

data CURLSH Source

Instances

Set options

Exceptions

More about error codes in libcurl on http://curl.haxx.se/libcurl/c/libcurl-errors.html