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

CopyrightCopyright © 2012-2014 Krzysztof Kardzis
LicenseISC License (MIT/BSD-style, see LICENSE file for details)
MaintainerKrzysztof Kardzis <kkardzis@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

Network.CURL720

Contents

Description

Synopsis

Documentation

Using functions from this module requires an explicit linking with libcurl/7.20 or newer at program runtime:

main = withlib CURL720 $ do
  ...

Without that, any foreign call to libcurl will fail.

More info may be found in the docs.

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 where Source

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 Bool 
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