Copyright | Copyright (c) 2012-2015 Krzysztof Kardzis |
---|---|
License | ISC License (MIT/BSD-style, see LICENSE file for details) |
Maintainer | Krzysztof Kardzis <kkardzis@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell98 |
- module Network.CURL000
- 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_VERSION_TLSAUTH_SRP
- | CURL_VERSION_NTLM_WB
- 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_PRIMARY_PORT :: CURLinfo CLong
- CURLINFO_LOCAL_IP :: CURLinfo String
- CURLINFO_LOCAL_PORT :: CURLinfo CLong
- 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_WILDCARDMATCH 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_TCP_KEEPALIVE Bool
- | CURLOPT_TCP_KEEPIDLE CLong
- | CURLOPT_TCP_KEEPINTVL 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_TLSAUTH_TYPE String
- | CURLOPT_TLSAUTH_USERNAME String
- | CURLOPT_TLSAUTH_PASSWORD String
- | CURLOPT_PROXYAUTH [CURLauth]
- | CURLOPT_AUTOREFERER Bool
- | CURLOPT_ACCEPT_ENCODING String
- | CURLOPT_TRANSFER_ENCODING Bool
- | 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_MAIL_AUTH 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_RESOLVE [String]
- | CURLOPT_DNS_SERVERS String
- | CURLOPT_ACCEPTTIMEOUT_MS CLong
- | 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_SSL_OPTIONS [CURLsslopt]
- | CURLOPT_KRBLEVEL String
- | CURLOPT_GSSAPI_DELEGATION CURLgssapi
- | 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
- | CURLPROTO_RTMP
- | CURLPROTO_RTMPT
- | CURLPROTO_RTMPE
- | CURLPROTO_RTMPTE
- | CURLPROTO_RTMPS
- | CURLPROTO_RTMPTS
- | CURLPROTO_GOPHER
- data CURLproxy
- data CURLnetrc
- data CURLauth
- data CURLtlsauth = CURL_TLSAUTH_SRP
- data CURLredir
- data CURLhttpver
- data CURLftpcreate
- data CURLftpauth
- data CURLftpssl
- data CURLftpmethod
- data CURLrtspreq
- data CURLtimecond
- data CURLipresolve
- data CURLusessl
- data CURLsslver
- data CURLsslopt = CURLSSLOPT_ALLOW_BEAST
- data CURLgssapi
- 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.CURL000
Using functions from this module requires an explicit linking
with libcurl/7.30
or newer at program runtime:
main = withlib CURL730 $ do ...
Without that, any foreign call to libcurl
will fail.
More info may be found in the docs.
Global interface
Version info
curl_version :: IO String Source
Returns the libcurl version string (http://curl.haxx.se/libcurl/c/curl_version.html).
curl_version_info :: IO CURL_version_info Source
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 CURL Source
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 ByteString Source
Receives raw data on an easy
connection
(http://curl.haxx.se/libcurl/c/curl_easy_recv.html).
curl_easy_send :: CURL -> ByteString -> IO Int Source
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 a Source
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_write_callback = ByteString -> IO CURL_write_response Source
type CURL_read_callback = Int -> IO CURL_read_response Source
data CURL_read_response Source
Constants
data CURLftpmethod Source
data CURLrtspreq Source
data CURLtimecond Source
data CURLsslver Source
data CURLgssapi 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 CURLSH Source
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