Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Krzysztof Kardzis <kkardzis@gmail.com> |
Safe Haskell | None |
- module Network.CURLXXX
- curl_version :: IO String
- curl_version_info :: IO CURL_version_info
- data CURL_version_info = CURL_version_info {
- curl_version_info_version :: String
- curl_version_info_version_num :: Int
- curl_version_info_host :: String
- curl_version_info_features :: [CURLfeature]
- curl_version_info_ssl_version :: String
- curl_version_info_ssl_version_num :: Int
- curl_version_info_libz_version :: String
- curl_version_info_protocols :: [String]
- curl_version_info_ares :: String
- curl_version_info_ares_num :: Int
- curl_version_info_libidn :: String
- curl_version_info_iconv_ver_num :: Int
- curl_version_info_libssh_version :: String
- data CURLfeature
- = CURL_VERSION_IPV6
- | CURL_VERSION_KERBEROS4
- | CURL_VERSION_SSL
- | CURL_VERSION_LIBZ
- | CURL_VERSION_NTLM
- | CURL_VERSION_GSSNEGOTIATE
- | CURL_VERSION_DEBUG
- | CURL_VERSION_CURLDEBUG
- | CURL_VERSION_ASYNCHDNS
- | CURL_VERSION_SPNEGO
- | CURL_VERSION_LARGEFILE
- | CURL_VERSION_IDN
- | CURL_VERSION_SSPI
- | CURL_VERSION_CONV
- curl_easy_init :: IO CURL
- curl_easy_cleanup :: CURL -> IO ()
- curl_easy_reset :: CURL -> IO ()
- data CURL
- curl_easy_perform :: CURL -> IO ()
- curl_easy_recv :: CURL -> Int -> IO ByteString
- curl_easy_send :: CURL -> ByteString -> IO Int
- curl_easy_getinfo :: CURL -> CURLinfo a -> IO a
- data CURLinfo a where
- 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
- curl_easy_setopt :: CURL -> [CURLoption] -> IO ()
- data CURLoption
- = 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]
- type CURL_write_callback = ByteString -> IO CURL_write_response
- data CURL_write_response
- type CURL_read_callback = Int -> IO CURL_read_response
- data CURL_read_response
- data CURLproto
- = CURLPROTO_ALL
- | CURLPROTO_HTTP
- | CURLPROTO_HTTPS
- | CURLPROTO_FTP
- | CURLPROTO_FTPS
- | CURLPROTO_SCP
- | CURLPROTO_SFTP
- | CURLPROTO_TELNET
- | CURLPROTO_LDAP
- | CURLPROTO_LDAPS
- | CURLPROTO_DICT
- | CURLPROTO_FILE
- | CURLPROTO_TFTP
- | CURLPROTO_IMAP
- | CURLPROTO_IMAPS
- | CURLPROTO_POP3
- | CURLPROTO_POP3S
- | CURLPROTO_SMTP
- | CURLPROTO_SMTPS
- | CURLPROTO_RTSP
- data CURLproxy
- data CURLnetrc
- data CURLauth
- data CURLredir
- data CURLhttpver
- data CURLftpcreate
- data CURLftpauth
- data CURLftpssl
- data CURLftpmethod
- data CURLrtspreq
- data CURLtimecond
- data CURLipresolve
- data CURLusessl
- data CURLsslver
- data CURLsshauth
- data CURLE = CURLE CURL String String CURLC
- data CURLC
- = 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
- curl_share_init :: IO CURLSH
- curl_share_cleanup :: CURLSH -> IO ()
- data CURLSH
- curl_share_setopt :: CURLSH -> [CURLSHoption] -> IO ()
- data CURLSHoption
- data CURLSHlockdata
- data CURLSHE = CURLSHE CURLSH String String CURLSHC
- data CURLSHC
Documentation
module Network.CURLXXX
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
curl_version :: IO StringSource
Returns the libcurl version string (http://curl.haxx.se/libcurl/c/curl_version.html).
curl_version_info :: IO CURL_version_infoSource
Returns run-time libcurl version info (http://curl.haxx.se/libcurl/c/curl_version_info.html).
data CURL_version_info Source
data CURLfeature Source
Easy interface
See http://curl.haxx.se/libcurl/c/libcurl-easy.html for easy interface overview.
Init / Cleanup
curl_easy_init :: IO CURLSource
Start a libcurl easy session (http://curl.haxx.se/libcurl/c/curl_easy_init.html).
curl_easy_cleanup :: CURL -> IO ()Source
End a libcurl easy session (http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html).
curl_easy_reset :: CURL -> IO ()Source
Reset all options of a libcurl session handle (http://curl.haxx.se/libcurl/c/curl_easy_reset.html).
Transfer
curl_easy_perform :: CURL -> IO ()Source
Perform a file transfer (http://curl.haxx.se/libcurl/c/curl_easy_perform.html).
curl_easy_recv :: CURL -> Int -> IO ByteStringSource
Receives raw data on an easy
connection
(http://curl.haxx.se/libcurl/c/curl_easy_recv.html).
curl_easy_send :: CURL -> ByteString -> IO IntSource
Sends raw data over an easy
connection
(http://curl.haxx.se/libcurl/c/curl_easy_send.html).
Get info
curl_easy_getinfo :: CURL -> CURLinfo a -> IO aSource
Extract information from a curl handle (http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html).
Set options
curl_easy_setopt :: CURL -> [CURLoption] -> IO ()Source
Set options for a curl easy handle (http://curl.haxx.se/libcurl/c/curl_easy_setopt.html).
data CURLoption Source
Callbacks
type CURL_read_callback = Int -> IO CURL_read_responseSource
data CURL_read_response Source
Constants
data CURLftpmethod Source
data CURLrtspreq Source
data CURLtimecond Source
data CURLsslver Source
data CURLsshauth Source
Exceptions
More about error codes in libcurl on http://curl.haxx.se/libcurl/c/libcurl-errors.html
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
curl_share_init :: IO CURLSHSource
Create a shared object (http://curl.haxx.se/libcurl/c/curl_share_init.html).
curl_share_cleanup :: CURLSH -> IO ()Source
Clean up a shared object (http://curl.haxx.se/libcurl/c/curl_share_cleanup.html).
Set options
curl_share_setopt :: CURLSH -> [CURLSHoption] -> IO ()Source
Set options for a shared object (http://curl.haxx.se/libcurl/c/curl_share_setopt.html).
Exceptions
More about error codes in libcurl on http://curl.haxx.se/libcurl/c/libcurl-errors.html