--------------------------------------------------------------------
-- |
-- Module    : Network.Curl.Opts
-- Copyright : (c) Galois Inc 2007-2009
-- License   : BSD3
--
-- Maintainer: Sigbjorn Finne <sof@galois.com>
-- Stability : provisional
-- Portability: portable
--
-- This module contains the various options that specify what happens
-- when we use @perform@ on a @Curl@ handle.
--------------------------------------------------------------------
module Network.Curl.Opts where

import Network.Curl.Types
import Network.Curl.Post
import Data.List

import Foreign.Ptr
import Foreign.C.Types
import Data.Bits

data CurlOption
 = CurlFileObj (Ptr ())  -- ^ external pointer to pass to as 'WriteFunction's last argument.
 | CurlURL  URLString    -- ^ the URL to use for next request; can be the full URL or just the authority\/hostname.
 | CurlPort  Long        -- ^ what port to use.
 | CurlProxy String      -- ^ name of proxy
 | CurlUserPwd String    -- ^ the "user:pass" string to use
 | CurlProxyUserPwd String -- ^ same thing, but for the proxy.
 | CurlRange String      -- ^ byte range to fetch
 | CurlInFile FilePath   -- ^ external pointer to pass to as 'WriteFunction's last argument.
 | CurlErrorBuffer (Ptr CChar) -- ^ buffer for curl to deposit error messages (must at least CURL_ERROR_SIZE bytes long). Uses standard error if not specified.
 | CurlWriteFunction WriteFunction -- ^ callback to handle incoming data.
 | CurlReadFunction  ReadFunction  -- ^ callback for supplying outgoing\/uploaded data.
 | CurlTimeout Long{-secs-}        -- ^ number of seconds before timing out curl operation\/request.
 | CurlInFileSize Long{-bytes-}    -- ^ expected size of uploaded data.
 | CurlPostFields [String]         -- ^ (Multipart) POST data.
 | CurlReferer String              -- ^ Set the Referer: header to the given string.
 | CurlFtpPort String              -- ^ The string to feed to the FTP PORT command.
 | CurlUserAgent String            -- ^ Set the User-Agent: header to the given string.
 | CurlLowSpeed  Long              -- ^ If the bytes per sec drops below the given value, the operation is aborted.
 | CurlLowSpeedTime Long           -- ^ Upper bound for request to complete.
 | CurlResumeFrom Long             -- ^ Byte offset at which the transfer (HTTP or FTP) should start from.
 | CurlCookie String               -- ^ Set the Cookie: header to the given cookie (name=value pairs, semicolon-separated) string.
 | CurlHttpHeaders [String]        -- ^ Embellish the outgoing request with the given list of (formatted) header values.
 | CurlHttpPost  [HttpPost]        -- ^ (Multipart) POST data.
 | CurlSSLCert FilePath            -- ^ file holding your private SSL certificates (default format is PEM).
 | CurlSSLPassword String          -- ^ password to the above file.
 | CurlSSLKeyPassword String       -- ^ an alias for the previous.
 | CurlCRLF Bool                   -- ^ If true, convert Unix newlines into CRLFs when transferring.
 | CurlQuote [String]              -- ^ Sequence of FTP commands to execute prior to the main request.
 | CurlWriteHeader (Ptr ())        -- ^ State \/ pointer argument to pass to WriteFunction callback.
 | CurlCookieFile FilePath         -- ^ Path to file holding initial cookie data; also enables cookie handling.
 | CurlSSLVersion Long             -- ^ What protocol to attempt using (0:default;1:TLS;2:SSLv2;3:SSLv3)
 | CurlTimeCondition TimeCond      -- ^ How to interpret a conditional time value.
 | CurlTimeValue Long              -- ^ Number of secs since Jan 1, 1970. Interpretation is determined by CurlTimeCondition.
 | CurlCustomRequest String        -- ^ String holding alternative request command (WebDAV anyone?)
 {- | CurlStderr String {- XXX: should be FILE* ? -}               -- ^ File object to use for outputting debug info to. -}
 | CurlPostQuote [String]          -- ^ List of commands to issue to FTP server after the main request.
 | CurlWriteInfo String            -- ^ Not sure what this one does; something about passing it to the output function.
 | CurlVerbose Bool                -- ^ Control verbosity
 | CurlHeader Bool                 -- ^ Display outgoing and incoming headers 
 | CurlNoProgress Bool             -- ^ Control progress meter
 | CurlNoBody Bool                 -- ^ Use HEAD instead of GET
 | CurlFailOnError Bool            -- ^ If status response is >= 300, return an error (and no other output).
 | CurlUpload Bool                 -- ^ Control the main dataflow, i.e., True to perform uploads.
 | CurlPost Bool                   -- ^ Issue a POST request.
 | CurlFtpListOnly Bool            -- ^ Switch NLST for FTP directory listings
 | CurlFtpAppend Bool              -- ^ Control if FTP uploads append rather than overwrite files 
 | CurlUseNetRc NetRcOption        -- ^ control how or if a user's.netrc will be consulted for user:password
 | CurlFollowLocation Bool         -- ^ Handle auto-redirects by chasing down Location: values in responses.
 | CurlTransferTextASCII Bool      -- ^ Turn on ASCII transfers for FTP transfers; default is binary (i.e. off).
 | CurlPut Bool                    -- ^ Use PUT to upload data.
 | CurlProgressFunction ProgressFunction  -- ^ callback for showing progress
 | CurlProgressData (Ptr ())       -- ^ state argumentto pass to progress callback.
 | CurlAutoReferer Bool            -- ^ Control if the Referer: field is set upon following Location: redirects
 | CurlProxyPort Long              -- ^ (Numeric) proxy port to use.
 | CurlPostFieldSize Long          -- ^ Size of the POSTed data.
 | CurlHttpProxyTunnel Bool        -- ^ tunnel all HTTP operations through the proxy.
 | CurlInterface String            -- ^ Interface name of outgoing network interface ( network interface, IP address, host name.)
 | CurlKrb4Level String            -- ^ Kerberos security level ("clear", "safe", "confidential", "private" are good values, seemingly.)
 | CurlSSLVerifyPeer Bool          -- ^ Enable the authentication of peer certificate. Default is True.
 | CurlCAInfo FilePath             -- ^ If verifying peer's certificate, use certificates in this file to do so.
 | CurlMaxRedirs Long              -- ^ Maximum number of Location: redirects to chase down before giving up.
 | CurlFiletime Bool               -- ^ Try to determine the modification date of remote document; can be queried for.
 | CurlTelnetOptions [String]      -- ^ List of commands to use for initial telnet negotiations.
 | CurlMaxConnects Long            -- ^ Maximum number of cached active connections.
 | CurlClosePolicy Long            -- ^ No effect (obsolete.)
 | CurlFreshConnect Bool           -- ^ Force the opening up a new connection rather than try to reuse active connections. Default is not to.
 | CurlForbidReuse Bool            -- ^ Do not reuse the connection of next transfer when done.
 | CurlRandomFile FilePath         -- ^ Path to file used to seed (Open)SSL PRNG.
 | CurlEgdSocket FilePath          -- ^ Path to domain socket of EG Daemon.
 | CurlConnectTimeout Long         -- ^ max number of seconds to wait for the initial connection to happen.
 | CurlHeaderFunction WriteFunction -- ^ callback used to handle _incoming_ header data.
 | CurlHttpGet Bool                -- ^ Revert to a GET for the next request.
 | CurlSSLVerifyHost Long          -- ^ Perform Common name checking in peer certificate (1=> existence;2=> matches hostname.)
 | CurlCookieJar FilePath          -- ^ Path to file where additional cookie information will be stored.
 | CurlSSLCipherList String        -- ^ Colon-separated string list of cipher preferences to use for upcoming connection (e.g., "3DES:+RSA")
 | CurlHttpVersion HttpVersion     -- ^ What HTTP version to use, should you want to drop back for some reason.
 | CurlFtpUseEPSV Bool             -- ^ Attempt the use of EPSV before PASV for passive FTP downloads.
 | CurlSSLCertType String          -- ^ The format of your certificates ("PEM", "DER")
 | CurlSSLKey FilePath             -- ^ Filename of private key.
 | CurlSSLKeyType String           -- ^ Format of private key; use "ENG" to load from a crypto engine.
 | CurlSSLEngine String            -- ^ Name of crypto engine to use.
 | CurlSSLEngineDefault            -- ^ Make crypto engine the default for crypto operations.
 | CurlDNSUseGlobalCache Bool      -- ^ Have library uses its MT-unfriendly DNS global cache.
 | CurlDNSCacheTimeout Long        -- ^ Number of seconds to cache results of DNS lookups in memory.
 | CurlPreQuote [String]           -- ^ FTP commands to issue after connection and transfer mode has been set.
 | CurlDebugFunction DebugFunction -- ^ callback to catch and report transfer operations.
 | CurlDebugData (Ptr ())          -- ^ state argument to pass to debug callback.
 | CurlCookieSession Bool          -- ^ Signal the start of a cookie session, ignoring previous session cookies.
 | CurlCAPath FilePath             -- ^ Directory holding CA certificates; used when verifying peer certificate.
 | CurlBufferSize Long             -- ^ Turn (down, presumably) the buffers the received data is chunked up into (and reported to the WriteFunction.) A hint, library is free to ignore.
 | CurlNoSignal Bool               -- ^ Turn off use of signals internally.
 | CurlShare (Ptr ())              -- ^ Share handles are used for sharing data among concurrent Curl objects.
 | CurlProxyType Long              -- ^ What type of proxy to use.
 | CurlEncoding String             -- ^ What to report in the Accept-Encoding: header
 | CurlPrivate (Ptr ())            -- ^ Data associated with a Curl handle.
 | CurlHttp200Aliases String       -- ^ Alternatives to standard 200 OK response strings; whatever it takes, I suppose.
 | CurlUnrestrictedAuth Bool       -- ^ Pass on user:pass when following redirects.
 | CurlFtppUseEPRT Bool            -- ^ For active FTP downloads, try using EPRT command over LPRT.
 | CurlHttpAuth [HttpAuth]         -- ^ State your authentication preferences.
 | CurlSSLCtxFunction SSLCtxtFunction -- ^ callback to handle setting up SSL connections; have the power to abort them.
 | CurlSSLCtxData (Ptr ())         -- ^ state argument to pass into the above callback.
 | CurlFtpCreateMissingDirs Bool   -- ^ Have remote directories be created if not already there
 | CurlProxyAuth [HttpAuth]        -- ^ What preferred authentication schemes to use wrt. proxy.
 | CurlFtpResponseTimeout Long     -- ^ max number of seconds to wait for remote server to ACK commands.
 | CurlIPResolve Long              -- ^ Whether to resolve wrt IPv4 or IPv6.
 | CurlMaxFileSize Long            -- ^ Limit the number of bytes you're willing to download.
 | CurlInFileSizeLarge LLong       -- ^ Wider alternative of option giving upper bound of uploaded content (-1 => unknown.)
 | CurlResumeFromLarge LLong       -- ^ Wider alternative for specifying initial transfer offset.
 | CurlMaxFileSizeLarge LLong      -- ^ Wider alternative for specifying max download size.
 | CurlNetrcFile FilePath          -- ^ Path to user\'s .netrc
 | CurlFtpSSL Long                 -- ^ Try enabling the use of SSL for FTP control connections and\/or transfers.
 | CurlPostFieldSizeLarge LLong    -- ^ Size of data to POST; if unspecified (or -1), curl uses strlen().
 | CurlTCPNoDelay Bool             -- ^ Turn on or off the TCP\/IP NODELAY option.
 | CurlFtpSSLAuth Long             -- ^ Twiddle if TLS or SSL is used.
 | CurlIOCTLFunction (Ptr ())      -- ^ somewhat obscure callback for handling read stream resets.
 | CurlIOCTLData (Ptr ())          -- ^ state argument to the above.
 | CurlFtpAccount String           -- ^ The string to use when server asks for account info.
 | CurlCookieList String           -- ^ Cookie string to pass cookie engine; "ALL" scrubs all cookie info; "SESS" scrubs session ones.
 | CurlIgnoreContentLength Bool    -- ^ If Content-Length: values are troublesome (wrong, perhaps?), use this option to ignore using them as guidance.
 | CurlFtpSkipPASVIP Bool          -- ^ Ignore IP address in 227 responses.
 | CurlFtpFileMethod Long          -- ^ How to navigate to a file on the remote server (single, multiple CWDs).
 | CurlLocalPort Port              -- ^ What local port to use for established connection.
 | CurlLocalPortRange Port         -- ^ Number of attempts at finding local ports (using LocalPort as initial base.)
 | CurlConnectOnly Bool            -- ^ If enabled, perform all steps up until actual transfer.
     -- next three for completeness.
 | CurlConvFromNetworkFunction (Ptr ()) -- ^ callback for doing character translations from network format.
 | CurlConvToNetworkFunction (Ptr ())   -- ^ callback for doing character translations to network format.
 | CurlConvFromUtf8Function (Ptr ())    -- ^ callback for translating UTF8 into host encoding.
 | CurlMaxSendSpeedLarge LLong          -- ^ Specifies throttle value for outgoing data.
 | CurlMaxRecvSpeedLarge LLong          -- ^ Specifies throttle for incoming data.
 | CurlFtpAlternativeToUser String      -- ^ Alternative (to user:pass) for FTP authentication; weird.
 | CurlSockOptFunction (Ptr ())         -- ^ callback that's injected between socket creation and connection.
 | CurlSockOptData (Ptr ())             -- ^ state argument to the above.
 | CurlSSLSessionIdCache Bool           -- ^ Enable the SSL session id cache; default is on, so use this to disable.
 | CurlSSHAuthTypes [SSHAuthType]       -- ^ SSH authentication methods to use.
 | CurlSSHPublicKeyFile FilePath        -- ^ Path to file holding user's SSH public key.
 | CurlSSHPrivateKeyFile FilePath       -- ^ Path to file holding user's SSH private key.
 | CurlFtpSSLCCC Bool                   -- ^ Send CCC command after FTP connection has been authenticated.
 | CurlTimeoutMS Long                   -- ^ Max number of milliseconds that a transfer may take.
 | CurlConnectTimeoutMS Long            -- ^ Max number of milliseconds that a connection attempt may take to complete.
 | CurlHttpTransferDecoding Bool        -- ^ Disable transfer decoding; if disabled, curl will turn off chunking.
 | CurlHttpContentDecoding  Bool        -- ^ Disable content decoding, getting the raw bits.
   -- sync'ed wrt 7.19.2
 | CurlNewFilePerms Long
 | CurlNewDirectoryPerms Long
 | CurlPostRedirect Bool
   -- no support for open socket callbacks/function overrides.
 | CurlSSHHostPublicKeyMD5 String
 | CurlCopyPostFields Bool
 | CurlProxyTransferMode Long
   -- no support for seeking in the input stream.
 | CurlCRLFile       FilePath
 | CurlIssuerCert    FilePath
 | CurlAddressScope  Long
 | CurlCertInfo      Long
 | CurlUserName      String
 | CurlUserPassword  String
 | CurlProxyUser     String
 | CurlProxyPassword String
  

instance Show CurlOption where
  show :: CurlOption -> URLString
show CurlOption
x = CurlOption -> URLString
showCurlOption CurlOption
x

data HttpVersion
 = HttpVersionNone
 | HttpVersion10
 | HttpVersion11
   deriving ( Int -> HttpVersion
HttpVersion -> Int
HttpVersion -> [HttpVersion]
HttpVersion -> HttpVersion
HttpVersion -> HttpVersion -> [HttpVersion]
HttpVersion -> HttpVersion -> HttpVersion -> [HttpVersion]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: HttpVersion -> HttpVersion -> HttpVersion -> [HttpVersion]
$cenumFromThenTo :: HttpVersion -> HttpVersion -> HttpVersion -> [HttpVersion]
enumFromTo :: HttpVersion -> HttpVersion -> [HttpVersion]
$cenumFromTo :: HttpVersion -> HttpVersion -> [HttpVersion]
enumFromThen :: HttpVersion -> HttpVersion -> [HttpVersion]
$cenumFromThen :: HttpVersion -> HttpVersion -> [HttpVersion]
enumFrom :: HttpVersion -> [HttpVersion]
$cenumFrom :: HttpVersion -> [HttpVersion]
fromEnum :: HttpVersion -> Int
$cfromEnum :: HttpVersion -> Int
toEnum :: Int -> HttpVersion
$ctoEnum :: Int -> HttpVersion
pred :: HttpVersion -> HttpVersion
$cpred :: HttpVersion -> HttpVersion
succ :: HttpVersion -> HttpVersion
$csucc :: HttpVersion -> HttpVersion
Enum,Int -> HttpVersion -> ShowS
[HttpVersion] -> ShowS
HttpVersion -> URLString
forall a.
(Int -> a -> ShowS) -> (a -> URLString) -> ([a] -> ShowS) -> Show a
showList :: [HttpVersion] -> ShowS
$cshowList :: [HttpVersion] -> ShowS
show :: HttpVersion -> URLString
$cshow :: HttpVersion -> URLString
showsPrec :: Int -> HttpVersion -> ShowS
$cshowsPrec :: Int -> HttpVersion -> ShowS
Show )

data TimeCond
 = TimeCondNone
 | TimeCondIfModSince
 | TimeCondIfUnmodSince
 | TimeCondLastMode
   deriving ( Int -> TimeCond
TimeCond -> Int
TimeCond -> [TimeCond]
TimeCond -> TimeCond
TimeCond -> TimeCond -> [TimeCond]
TimeCond -> TimeCond -> TimeCond -> [TimeCond]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: TimeCond -> TimeCond -> TimeCond -> [TimeCond]
$cenumFromThenTo :: TimeCond -> TimeCond -> TimeCond -> [TimeCond]
enumFromTo :: TimeCond -> TimeCond -> [TimeCond]
$cenumFromTo :: TimeCond -> TimeCond -> [TimeCond]
enumFromThen :: TimeCond -> TimeCond -> [TimeCond]
$cenumFromThen :: TimeCond -> TimeCond -> [TimeCond]
enumFrom :: TimeCond -> [TimeCond]
$cenumFrom :: TimeCond -> [TimeCond]
fromEnum :: TimeCond -> Int
$cfromEnum :: TimeCond -> Int
toEnum :: Int -> TimeCond
$ctoEnum :: Int -> TimeCond
pred :: TimeCond -> TimeCond
$cpred :: TimeCond -> TimeCond
succ :: TimeCond -> TimeCond
$csucc :: TimeCond -> TimeCond
Enum, Int -> TimeCond -> ShowS
[TimeCond] -> ShowS
TimeCond -> URLString
forall a.
(Int -> a -> ShowS) -> (a -> URLString) -> ([a] -> ShowS) -> Show a
showList :: [TimeCond] -> ShowS
$cshowList :: [TimeCond] -> ShowS
show :: TimeCond -> URLString
$cshow :: TimeCond -> URLString
showsPrec :: Int -> TimeCond -> ShowS
$cshowsPrec :: Int -> TimeCond -> ShowS
Show )
 
data NetRcOption
 = NetRcIgnored
 | NetRcOptional
 | NetRcRequired
   deriving ( Int -> NetRcOption
NetRcOption -> Int
NetRcOption -> [NetRcOption]
NetRcOption -> NetRcOption
NetRcOption -> NetRcOption -> [NetRcOption]
NetRcOption -> NetRcOption -> NetRcOption -> [NetRcOption]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: NetRcOption -> NetRcOption -> NetRcOption -> [NetRcOption]
$cenumFromThenTo :: NetRcOption -> NetRcOption -> NetRcOption -> [NetRcOption]
enumFromTo :: NetRcOption -> NetRcOption -> [NetRcOption]
$cenumFromTo :: NetRcOption -> NetRcOption -> [NetRcOption]
enumFromThen :: NetRcOption -> NetRcOption -> [NetRcOption]
$cenumFromThen :: NetRcOption -> NetRcOption -> [NetRcOption]
enumFrom :: NetRcOption -> [NetRcOption]
$cenumFrom :: NetRcOption -> [NetRcOption]
fromEnum :: NetRcOption -> Int
$cfromEnum :: NetRcOption -> Int
toEnum :: Int -> NetRcOption
$ctoEnum :: Int -> NetRcOption
pred :: NetRcOption -> NetRcOption
$cpred :: NetRcOption -> NetRcOption
succ :: NetRcOption -> NetRcOption
$csucc :: NetRcOption -> NetRcOption
Enum, Int -> NetRcOption -> ShowS
[NetRcOption] -> ShowS
NetRcOption -> URLString
forall a.
(Int -> a -> ShowS) -> (a -> URLString) -> ([a] -> ShowS) -> Show a
showList :: [NetRcOption] -> ShowS
$cshowList :: [NetRcOption] -> ShowS
show :: NetRcOption -> URLString
$cshow :: NetRcOption -> URLString
showsPrec :: Int -> NetRcOption -> ShowS
$cshowsPrec :: Int -> NetRcOption -> ShowS
Show )

data HttpAuth
 = HttpAuthNone
 | HttpAuthBasic
 | HttpAuthDigest
 | HttpAuthGSSNegotiate
 | HttpAuthNTLM
 | HttpAuthAny
 | HttpAuthAnySafe
   deriving ( Int -> HttpAuth
HttpAuth -> Int
HttpAuth -> [HttpAuth]
HttpAuth -> HttpAuth
HttpAuth -> HttpAuth -> [HttpAuth]
HttpAuth -> HttpAuth -> HttpAuth -> [HttpAuth]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: HttpAuth -> HttpAuth -> HttpAuth -> [HttpAuth]
$cenumFromThenTo :: HttpAuth -> HttpAuth -> HttpAuth -> [HttpAuth]
enumFromTo :: HttpAuth -> HttpAuth -> [HttpAuth]
$cenumFromTo :: HttpAuth -> HttpAuth -> [HttpAuth]
enumFromThen :: HttpAuth -> HttpAuth -> [HttpAuth]
$cenumFromThen :: HttpAuth -> HttpAuth -> [HttpAuth]
enumFrom :: HttpAuth -> [HttpAuth]
$cenumFrom :: HttpAuth -> [HttpAuth]
fromEnum :: HttpAuth -> Int
$cfromEnum :: HttpAuth -> Int
toEnum :: Int -> HttpAuth
$ctoEnum :: Int -> HttpAuth
pred :: HttpAuth -> HttpAuth
$cpred :: HttpAuth -> HttpAuth
succ :: HttpAuth -> HttpAuth
$csucc :: HttpAuth -> HttpAuth
Enum, Int -> HttpAuth -> ShowS
[HttpAuth] -> ShowS
HttpAuth -> URLString
forall a.
(Int -> a -> ShowS) -> (a -> URLString) -> ([a] -> ShowS) -> Show a
showList :: [HttpAuth] -> ShowS
$cshowList :: [HttpAuth] -> ShowS
show :: HttpAuth -> URLString
$cshow :: HttpAuth -> URLString
showsPrec :: Int -> HttpAuth -> ShowS
$cshowsPrec :: Int -> HttpAuth -> ShowS
Show )

toHttpAuthMask :: [HttpAuth] -> Long
toHttpAuthMask :: [HttpAuth] -> Long
toHttpAuthMask [] = Long
0
toHttpAuthMask (HttpAuth
x:[HttpAuth]
xs) = 
  let vs :: Long
vs = [HttpAuth] -> Long
toHttpAuthMask [HttpAuth]
xs in
  case HttpAuth
x of 
    HttpAuth
HttpAuthNone  -> Long
vs
    HttpAuth
HttpAuthBasic -> Long
0x1 forall a. Bits a => a -> a -> a
.|. Long
vs
    HttpAuth
HttpAuthDigest -> Long
0x2 forall a. Bits a => a -> a -> a
.|. Long
vs
    HttpAuth
HttpAuthGSSNegotiate -> Long
0x4 forall a. Bits a => a -> a -> a
.|. Long
vs
    HttpAuth
HttpAuthNTLM -> Long
0x8 forall a. Bits a => a -> a -> a
.|. Long
vs
    HttpAuth
HttpAuthAny -> (forall a. Bits a => a -> a
complement Long
0) forall a. Bits a => a -> a -> a
.|. Long
vs
    HttpAuth
HttpAuthAnySafe -> (forall a. Bits a => a -> a
complement Long
1) forall a. Bits a => a -> a -> a
.|. Long
vs


data SSHAuthType
 = SSHAuthAny
 | SSHAuthNone
 | SSHAuthPublickey
 | SSHAuthPassword
 | SSHAuthHost
 | SSHAuthKeyboard
   deriving ( Int -> SSHAuthType -> ShowS
[SSHAuthType] -> ShowS
SSHAuthType -> URLString
forall a.
(Int -> a -> ShowS) -> (a -> URLString) -> ([a] -> ShowS) -> Show a
showList :: [SSHAuthType] -> ShowS
$cshowList :: [SSHAuthType] -> ShowS
show :: SSHAuthType -> URLString
$cshow :: SSHAuthType -> URLString
showsPrec :: Int -> SSHAuthType -> ShowS
$cshowsPrec :: Int -> SSHAuthType -> ShowS
Show )


toSSHAuthMask :: [SSHAuthType] -> Long
toSSHAuthMask :: [SSHAuthType] -> Long
toSSHAuthMask [] = Long
0
toSSHAuthMask (SSHAuthType
x:[SSHAuthType]
xs) = 
  let vs :: Long
vs = [SSHAuthType] -> Long
toSSHAuthMask [SSHAuthType]
xs in 
  case SSHAuthType
x of
    SSHAuthType
SSHAuthAny -> (forall a. Bits a => a -> a
complement Long
0) forall a. Bits a => a -> a -> a
.|. Long
vs
    SSHAuthType
SSHAuthNone -> Long
vs
    SSHAuthType
SSHAuthPublickey -> Long
1 forall a. Bits a => a -> a -> a
.|. Long
vs
    SSHAuthType
SSHAuthPassword -> Long
2 forall a. Bits a => a -> a -> a
.|. Long
vs
    SSHAuthType
SSHAuthHost -> Long
4 forall a. Bits a => a -> a -> a
.|. Long
vs
    SSHAuthType
SSHAuthKeyboard -> Long
8 forall a. Bits a => a -> a -> a
.|. Long
vs


type WriteFunction
  = Ptr CChar  --  pointer to external buffer holding data
 -> CInt       --  width (in bytes) of each item
 -> CInt       --  number of items
 -> Ptr ()     --  state argument (file pointer etc.)
 -> IO CInt    --  number of bytes written.

type ReadFunction
  = Ptr CChar  --  pointer to external buffer to fill in.
 -> CInt       --  width (in bytes) of each item
 -> CInt       --  number of items
 -> Ptr ()     --  state argument (file pointer etc.)
 -> IO (Maybe CInt) --  how many bytes was copied into buffer; Nothing => abort.
 
type ReadFunctionPrim
  = Ptr CChar
 -> CInt
 -> CInt
 -> Ptr ()
 -> IO CInt
 

type ProgressFunction
  = Ptr ()  --  state argument
 -> Double  --  expected download totals
 -> Double  --  download totals so far
 -> Double  --  expected upload totals
 -> Double  --  upload totals so far
 -> IO CInt --  not sure; 0 is a good one.

type DebugFunction
  = Curl       --  connection handle
 -> DebugInfo  --  type of call
 -> Ptr CChar  --  data buffer
 -> CInt       --  length of buffer
 -> Ptr ()     --  state argument
 -> IO ()      --  always 0

data DebugInfo
 = InfoText
 | InfoHeaderIn
 | InfoHeaderOut
 | InfoDataIn
 | InfoDataOut
 | InfoSslDataIn
 | InfoSslDataOut
   deriving ( DebugInfo -> DebugInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DebugInfo -> DebugInfo -> Bool
$c/= :: DebugInfo -> DebugInfo -> Bool
== :: DebugInfo -> DebugInfo -> Bool
$c== :: DebugInfo -> DebugInfo -> Bool
Eq, Int -> DebugInfo
DebugInfo -> Int
DebugInfo -> [DebugInfo]
DebugInfo -> DebugInfo
DebugInfo -> DebugInfo -> [DebugInfo]
DebugInfo -> DebugInfo -> DebugInfo -> [DebugInfo]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: DebugInfo -> DebugInfo -> DebugInfo -> [DebugInfo]
$cenumFromThenTo :: DebugInfo -> DebugInfo -> DebugInfo -> [DebugInfo]
enumFromTo :: DebugInfo -> DebugInfo -> [DebugInfo]
$cenumFromTo :: DebugInfo -> DebugInfo -> [DebugInfo]
enumFromThen :: DebugInfo -> DebugInfo -> [DebugInfo]
$cenumFromThen :: DebugInfo -> DebugInfo -> [DebugInfo]
enumFrom :: DebugInfo -> [DebugInfo]
$cenumFrom :: DebugInfo -> [DebugInfo]
fromEnum :: DebugInfo -> Int
$cfromEnum :: DebugInfo -> Int
toEnum :: Int -> DebugInfo
$ctoEnum :: Int -> DebugInfo
pred :: DebugInfo -> DebugInfo
$cpred :: DebugInfo -> DebugInfo
succ :: DebugInfo -> DebugInfo
$csucc :: DebugInfo -> DebugInfo
Enum )

type DebugFunctionPrim
  = CurlH      --  connection handle
 -> CInt       --  type of call
 -> Ptr CChar  --  data buffer
 -> CInt       --  length of buffer
 -> Ptr ()     --  state argument
 -> IO CInt    --  always 0



type SSLCtxtFunction
  = CurlH   --  connection handle
 -> Ptr ()  --  the SSL_CTX handle
 -> Ptr ()  --  state argument
 -> IO CInt

curl_readfunc_abort :: CInt
curl_readfunc_abort :: CInt
curl_readfunc_abort = CInt
0x10000000

baseLong :: Int
baseLong :: Int
baseLong = Int
0

baseObject :: Int
baseObject :: Int
baseObject = Int
10000

baseFunction :: Int
baseFunction :: Int
baseFunction = Int
20000

baseOffT :: Int
baseOffT :: Int
baseOffT = Int
30000

unmarshallOption :: Unmarshaller a -> CurlOption -> IO a
unmarshallOption :: forall a. Unmarshaller a -> CurlOption -> IO a
unmarshallOption Unmarshaller a
um CurlOption
c =
 let 
  l :: Int -> Int
l   = (Int
baseLongforall a. Num a => a -> a -> a
+)
  o :: Int -> Int
o   = (Int
baseObjectforall a. Num a => a -> a -> a
+)
  f :: Int -> Int
f   = (Int
baseFunctionforall a. Num a => a -> a -> a
+)
  off :: Int -> Int
off = (Int
baseOffTforall a. Num a => a -> a -> a
+)
 in
 case CurlOption
c of
  CurlFileObj Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
1) Ptr ()
x
  CurlURL URLString
x   -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
2) URLString
x
  CurlPort Long
x  -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long   Unmarshaller a
um (Int -> Int
l Int
3) Long
x
  CurlProxy URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
4) URLString
x
  CurlUserPwd URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
5) URLString
x
  CurlProxyUserPwd URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
6) URLString
x
  CurlRange URLString
x   -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
7) URLString
x
  CurlInFile URLString
x  -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
9) URLString
x
  CurlErrorBuffer Ptr CChar
x   -> forall a. Unmarshaller a -> Int -> Ptr CChar -> IO a
u_cptr Unmarshaller a
um (Int -> Int
o Int
10) Ptr CChar
x
  CurlWriteFunction WriteFunction
x -> forall a. Unmarshaller a -> Int -> WriteFunction -> IO a
u_writeFun Unmarshaller a
um (Int -> Int
f Int
11) WriteFunction
x
  CurlReadFunction ReadFunction
x  -> forall a. Unmarshaller a -> Int -> ReadFunction -> IO a
u_readFun  Unmarshaller a
um (Int -> Int
f Int
12) ReadFunction
x
  CurlTimeout Long
x ->  forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
13) Long
x
  CurlInFileSize Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
14) Long
x
  CurlPostFields [URLString]
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
15) (forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat forall a b. (a -> b) -> a -> b
$ forall a. a -> [a] -> [a]
intersperse URLString
"&" [URLString]
x)
  CurlReferer URLString
x ->  forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
16) URLString
x
  CurlFtpPort URLString
x ->  forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
17) URLString
x
  CurlUserAgent URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
18) URLString
x
  CurlLowSpeed Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
19) Long
x
  CurlLowSpeedTime Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
20) Long
x
  CurlResumeFrom Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
21) Long
x
  CurlCookie URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
22) URLString
x
  CurlHttpHeaders [URLString]
x -> forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings Unmarshaller a
um (Int -> Int
o Int
23) [URLString]
x
  CurlHttpPost [HttpPost]
x -> forall a. Unmarshaller a -> Int -> [HttpPost] -> IO a
u_posts Unmarshaller a
um (Int -> Int
o Int
24) [HttpPost]
x
  CurlSSLCert URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
25) URLString
x
  CurlSSLPassword URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
26) URLString
x
  CurlSSLKeyPassword URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
26) URLString
x -- yes, duplicate.
  CurlCRLF Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
27) Bool
x
  CurlQuote [URLString]
x -> forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings Unmarshaller a
um (Int -> Int
o Int
28) [URLString]
x
  CurlWriteHeader Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
29) Ptr ()
x
  CurlCookieFile URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
31) URLString
x
  CurlSSLVersion Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
32) Long
x
  CurlTimeCondition TimeCond
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
33) TimeCond
x
  CurlTimeValue Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
34) Long
x
  CurlCustomRequest URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
36) URLString
x
  -- CurlStderr x -> u_string um (o 37) x
  CurlPostQuote [URLString]
x -> forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings Unmarshaller a
um (Int -> Int
o Int
39) [URLString]
x
  CurlWriteInfo URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
40) URLString
x
  CurlVerbose Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
41) Bool
x
  CurlHeader Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
42) Bool
x
  CurlNoProgress Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
43) Bool
x
  CurlNoBody Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
44) Bool
x
  CurlFailOnError Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
45) Bool
x
  CurlUpload Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
46) Bool
x
  CurlPost Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
47) Bool
x
  CurlFtpListOnly Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
48) Bool
x
  CurlFtpAppend Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
50) Bool
x
  CurlUseNetRc NetRcOption
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
51) NetRcOption
x
  CurlFollowLocation Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
52) Bool
x
  CurlTransferTextASCII Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
53) Bool
x
  CurlPut Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
54) Bool
x
  CurlProgressFunction ProgressFunction
x -> forall a. Unmarshaller a -> Int -> ProgressFunction -> IO a
u_progressFun Unmarshaller a
um (Int -> Int
f Int
56) ProgressFunction
x
  CurlProgressData Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
57) Ptr ()
x
  CurlAutoReferer Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
58) Bool
x
  CurlProxyPort Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
59) Long
x
  CurlPostFieldSize Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
60) Long
x
  CurlHttpProxyTunnel Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
61) Bool
x
  CurlInterface URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
62) URLString
x
  CurlKrb4Level URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
63) URLString
x
  CurlSSLVerifyPeer Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
64) Bool
x
  CurlCAInfo URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
65) URLString
x
  CurlMaxRedirs Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
68) Long
x
  CurlFiletime Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
69) Bool
x
  CurlTelnetOptions [URLString]
x -> forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings Unmarshaller a
um (Int -> Int
o Int
70) [URLString]
x
  CurlMaxConnects Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
71) Long
x
  CurlClosePolicy Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
72) Long
x
  CurlFreshConnect Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
74) Bool
x
  CurlForbidReuse Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
75) Bool
x
  CurlRandomFile URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
76) URLString
x
  CurlEgdSocket URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
77) URLString
x
  CurlConnectTimeout Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
78) Long
x
  CurlHeaderFunction WriteFunction
x -> forall a. Unmarshaller a -> Int -> WriteFunction -> IO a
u_writeFun Unmarshaller a
um (Int -> Int
f Int
79) WriteFunction
x
  CurlHttpGet Bool
x        -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
80) Bool
x
  CurlSSLVerifyHost Long
x  -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
81) Long
x
  CurlCookieJar URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
82) URLString
x
  CurlSSLCipherList URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
83) URLString
x -- a string (or a l-list of them)?
  CurlHttpVersion HttpVersion
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
84) HttpVersion
x
  CurlFtpUseEPSV Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
85) Bool
x
  CurlSSLCertType URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
86) URLString
x
  CurlSSLKey URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
87) URLString
x
  CurlSSLKeyType URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
88) URLString
x
  CurlSSLEngine URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
89) URLString
x
  CurlOption
CurlSSLEngineDefault -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
90) Bool
True
  CurlDNSUseGlobalCache Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
91) Bool
x
  CurlDNSCacheTimeout Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
92) Long
x
  CurlPreQuote [URLString]
x -> forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings Unmarshaller a
um (Int -> Int
o Int
93) [URLString]
x
  CurlDebugFunction DebugFunction
x -> forall a. Unmarshaller a -> Int -> DebugFunction -> IO a
u_debugFun Unmarshaller a
um (Int -> Int
f Int
94) DebugFunction
x
  CurlDebugData Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
95) Ptr ()
x
  CurlCookieSession Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
96) Bool
x
  CurlCAPath URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
97) URLString
x
  CurlBufferSize Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
98) Long
x
  CurlNoSignal Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
99) Bool
x
  CurlShare Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
100) Ptr ()
x
  CurlProxyType Long
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
101) Long
x
  CurlEncoding URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
102) URLString
x
  CurlPrivate Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
103) Ptr ()
x
  CurlHttp200Aliases URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
104) URLString
x -- correct?
  CurlUnrestrictedAuth Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
105) Bool
x
  CurlFtppUseEPRT Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
106) Bool
x
  CurlHttpAuth [HttpAuth]
xs -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
107) ([HttpAuth] -> Long
toHttpAuthMask [HttpAuth]
xs)
  CurlSSLCtxFunction SSLCtxtFunction
x -> forall a. Unmarshaller a -> Int -> SSLCtxtFunction -> IO a
u_sslctxt Unmarshaller a
um (Int -> Int
f Int
108) SSLCtxtFunction
x
  CurlSSLCtxData Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
109) Ptr ()
x
  CurlFtpCreateMissingDirs Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
110) Bool
x
  CurlProxyAuth [HttpAuth]
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
111) ([HttpAuth] -> Long
toHttpAuthMask [HttpAuth]
x)
  CurlFtpResponseTimeout Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
112) Long
x
  CurlIPResolve Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
113) Long
x
  CurlMaxFileSize Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
114) Long
x
  CurlInFileSizeLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
115) LLong
x
  CurlResumeFromLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
116) LLong
x
  CurlMaxFileSizeLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
117) LLong
x
  CurlNetrcFile URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
118) URLString
x
  CurlFtpSSL Long
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
119) Long
x
  CurlPostFieldSizeLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
120) LLong
x
  CurlTCPNoDelay Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
121) Bool
x
  CurlFtpSSLAuth Long
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
129) Long
x
  CurlIOCTLFunction Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ioctl_fun Unmarshaller a
um (Int -> Int
f Int
130) Ptr ()
x
  CurlIOCTLData Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
131) Ptr ()
x
  CurlFtpAccount URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
134) URLString
x
  CurlCookieList URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
135) URLString
x
  CurlIgnoreContentLength Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
136) Bool
x
  CurlFtpSkipPASVIP Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
137) Bool
x
  CurlFtpFileMethod Long
x -> forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um (Int -> Int
l Int
138) Long
x
  CurlLocalPort Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
139) Long
x
  CurlLocalPortRange Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
140) Long
x
  CurlConnectOnly Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
141) Bool
x
  CurlConvFromNetworkFunction Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromNetwork Unmarshaller a
um (Int -> Int
f Int
142) Ptr ()
x
  CurlConvToNetworkFunction Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convToNetwork Unmarshaller a
um (Int -> Int
f Int
143) Ptr ()
x
  CurlConvFromUtf8Function Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromUtf8 Unmarshaller a
um (Int -> Int
f Int
144) Ptr ()
x
  CurlMaxSendSpeedLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
145) LLong
x
  CurlMaxRecvSpeedLarge LLong
x -> forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong Unmarshaller a
um (Int -> Int
off Int
146) LLong
x
  CurlFtpAlternativeToUser URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
147) URLString
x
  CurlSockOptFunction Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_sockoptFun Unmarshaller a
um (Int -> Int
f Int
148) Ptr ()
x
  CurlSockOptData Ptr ()
x -> forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um (Int -> Int
o Int
149) Ptr ()
x
  CurlSSLSessionIdCache Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
150) Bool
x
  CurlSSHAuthTypes [SSHAuthType]
xs -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
151) ([SSHAuthType] -> Long
toSSHAuthMask [SSHAuthType]
xs)
  CurlSSHPublicKeyFile URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
152) URLString
x
  CurlSSHPrivateKeyFile URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
o Int
153) URLString
x
  CurlFtpSSLCCC Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
154) Bool
x
  CurlTimeoutMS Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
155) Long
x
  CurlConnectTimeoutMS Long
x -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
156) Long
x
  CurlHttpTransferDecoding Bool
x -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
157) Bool
x
  CurlHttpContentDecoding Bool
x ->  forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
158) Bool
x
  CurlNewFilePerms Long
x        -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
159) Long
x
  CurlNewDirectoryPerms Long
x   -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
160) Long
x
  CurlPostRedirect Bool
x        -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
161) Bool
x
  CurlSSHHostPublicKeyMD5 URLString
x -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
162) URLString
x
  CurlCopyPostFields Bool
x      -> forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um (Int -> Int
l Int
165) Bool
x
  CurlProxyTransferMode Long
x   -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um (Int -> Int
l Int
166) Long
x
  CurlCRLFile URLString
x             -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
169) URLString
x
  CurlIssuerCert URLString
x          -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
170) URLString
x
  CurlAddressScope Long
x        -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um   (Int -> Int
l Int
171) Long
x
  CurlCertInfo Long
x            -> forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um   (Int -> Int
l Int
172) Long
x
  CurlUserName URLString
x            -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
173) URLString
x
  CurlUserPassword URLString
x        -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
174) URLString
x
  CurlProxyUser URLString
x           -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
175) URLString
x
  CurlProxyPassword URLString
x       -> forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string Unmarshaller a
um (Int -> Int
l Int
176) URLString
x

data Unmarshaller a
 = Unmarshaller
     { forall a. Unmarshaller a -> Int -> Long -> IO a
u_long    :: Int -> Long     -> IO a
     , forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong   :: Int -> LLong    -> IO a
     , forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string  :: Int -> String   -> IO a
     , forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings :: Int -> [String] -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr     :: Int -> Ptr ()   -> IO a
     , forall a. Unmarshaller a -> Int -> WriteFunction -> IO a
u_writeFun :: Int -> WriteFunction -> IO a
     , forall a. Unmarshaller a -> Int -> ReadFunction -> IO a
u_readFun :: Int -> ReadFunction -> IO a
     , forall a. Unmarshaller a -> Int -> ProgressFunction -> IO a
u_progressFun :: Int -> ProgressFunction -> IO a
     , forall a. Unmarshaller a -> Int -> DebugFunction -> IO a
u_debugFun :: Int -> DebugFunction -> IO a
     , forall a. Unmarshaller a -> Int -> [HttpPost] -> IO a
u_posts    :: Int -> [HttpPost] -> IO a
     , forall a. Unmarshaller a -> Int -> SSLCtxtFunction -> IO a
u_sslctxt  :: Int -> SSLCtxtFunction -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ioctl_fun :: Int -> Ptr () -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromNetwork :: Int -> Ptr () -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convToNetwork :: Int -> Ptr () -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromUtf8 :: Int -> Ptr () -> IO a
     , forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_sockoptFun  :: Int -> Ptr () -> IO a
     }

verboseUnmarshaller :: Unmarshaller a -> Unmarshaller a
verboseUnmarshaller :: forall a. Unmarshaller a -> Unmarshaller a
verboseUnmarshaller Unmarshaller a
u =
  let two :: URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
m Unmarshaller a -> t -> t -> IO b
f t
x t
y = URLString -> IO ()
putStrLn URLString
m forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Unmarshaller a -> t -> t -> IO b
f Unmarshaller a
u t
x t
y 
      twoS :: URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
m Unmarshaller a -> t -> t -> IO b
f t
x t
y = URLString -> IO ()
putStrLn (URLString
m forall a. [a] -> [a] -> [a]
++ URLString
": " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show (t
x,t
y)) forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Unmarshaller a -> t -> t -> IO b
f Unmarshaller a
u t
x t
y 
  in Unmarshaller a
u 
    { u_long :: Int -> Long -> IO a
u_long        = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_long" forall a. Unmarshaller a -> Int -> Long -> IO a
u_long
    , u_llong :: Int -> LLong -> IO a
u_llong       = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_llong" forall a. Unmarshaller a -> Int -> LLong -> IO a
u_llong
    , u_string :: Int -> URLString -> IO a
u_string      = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_string" forall a. Unmarshaller a -> Int -> URLString -> IO a
u_string 
    , u_strings :: Int -> [URLString] -> IO a
u_strings     = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_strings" forall a. Unmarshaller a -> Int -> [URLString] -> IO a
u_strings
    , u_ptr :: Int -> Ptr () -> IO a
u_ptr         = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_ptr" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr
    , u_writeFun :: Int -> WriteFunction -> IO a
u_writeFun    = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_writeFun" forall a. Unmarshaller a -> Int -> WriteFunction -> IO a
u_writeFun
    , u_readFun :: Int -> ReadFunction -> IO a
u_readFun     = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_readFun" forall a. Unmarshaller a -> Int -> ReadFunction -> IO a
u_readFun
    , u_progressFun :: Int -> ProgressFunction -> IO a
u_progressFun = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_progressFun" forall a. Unmarshaller a -> Int -> ProgressFunction -> IO a
u_progressFun
    , u_debugFun :: Int -> DebugFunction -> IO a
u_debugFun    = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_debugFun" forall a. Unmarshaller a -> Int -> DebugFunction -> IO a
u_debugFun
    , u_posts :: Int -> [HttpPost] -> IO a
u_posts       = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_posts" forall a. Unmarshaller a -> Int -> [HttpPost] -> IO a
u_posts
    , u_sslctxt :: Int -> SSLCtxtFunction -> IO a
u_sslctxt     = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_sslctxt" forall a. Unmarshaller a -> Int -> SSLCtxtFunction -> IO a
u_sslctxt
    , u_ioctl_fun :: Int -> Ptr () -> IO a
u_ioctl_fun        = forall {t} {t} {b}.
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
two URLString
"u_ioctl_fun" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ioctl_fun
    , u_convFromNetwork :: Int -> Ptr () -> IO a
u_convFromNetwork  = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_convFromNetwork" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromNetwork
    , u_convToNetwork :: Int -> Ptr () -> IO a
u_convToNetwork    = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_convToNetwork" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convToNetwork
    , u_convFromUtf8 :: Int -> Ptr () -> IO a
u_convFromUtf8     = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_convFromUtf8" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_convFromUtf8
    , u_sockoptFun :: Int -> Ptr () -> IO a
u_sockoptFun       = forall {t} {t} {b}.
(Show t, Show t) =>
URLString -> (Unmarshaller a -> t -> t -> IO b) -> t -> t -> IO b
twoS URLString
"u_sockoptFun" forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_sockoptFun
    }


u_bool :: Unmarshaller a -> Int -> Bool -> IO a
u_bool :: forall a. Unmarshaller a -> Int -> Bool -> IO a
u_bool Unmarshaller a
um Int
x Bool
b = forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um Int
x (if Bool
b then Long
1 else Long
0)

u_enum :: Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum :: forall b a. Enum b => Unmarshaller a -> Int -> b -> IO a
u_enum Unmarshaller a
um Int
x b
b = forall a. Unmarshaller a -> Int -> Long -> IO a
u_long Unmarshaller a
um Int
x (forall a b. (Integral a, Num b) => a -> b
fromIntegral forall a b. (a -> b) -> a -> b
$ forall a. Enum a => a -> Int
fromEnum b
b)

u_cptr :: Unmarshaller a -> Int -> Ptr CChar -> IO a
u_cptr :: forall a. Unmarshaller a -> Int -> Ptr CChar -> IO a
u_cptr Unmarshaller a
um Int
x Ptr CChar
p = forall a. Unmarshaller a -> Int -> Ptr () -> IO a
u_ptr Unmarshaller a
um Int
x (forall a b. Ptr a -> Ptr b
castPtr Ptr CChar
p)

showCurlOption :: CurlOption -> String
showCurlOption :: CurlOption -> URLString
showCurlOption CurlOption
o = 
  case CurlOption
o of
    CurlFileObj Ptr ()
p  -> URLString
"CurlFileObj " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlURL URLString
u      -> URLString
"CurlURL " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
u
    CurlPort Long
p     -> URLString
"CurlPort " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlProxy URLString
s    -> URLString
"CurlProxy " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
s
    CurlUserPwd URLString
p  -> URLString
"CurlUserPwd " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlProxyUserPwd URLString
p -> URLString
"CurlProxyUserPwd " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlRange URLString
p -> URLString
"CurlRange " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlInFile URLString
p -> URLString
"CurlInFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlErrorBuffer Ptr CChar
p -> URLString
"CurlErrorBuffer " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr CChar
p
    CurlWriteFunction{} -> URLString
"CurlWriteFunction <fun>"
    CurlReadFunction{}  -> URLString
"CurlReadFunction <fun>"
    CurlTimeout Long
l       -> URLString
"CurlTimeout " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
l
    CurlInFileSize Long
l    -> URLString
"CurlInFileSize " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
l
    CurlPostFields [URLString]
p    -> URLString
"CurlPostFields " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlReferer URLString
p       -> URLString
"CurlReferer " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlFtpPort URLString
p       -> URLString
"CurlFtpPort " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlUserAgent URLString
p     -> URLString
"CurlUserAgent " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlLowSpeed  Long
p     -> URLString
"CurlLowSpeed " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlLowSpeedTime Long
p  -> URLString
"CurlLowSpeedTime " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlResumeFrom Long
p    -> URLString
"CurlResumeFrom " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlCookie URLString
p        -> URLString
"CurlCookie " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlHttpHeaders [URLString]
p   -> URLString
"CurlHttpHeaders " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlHttpPost [HttpPost]
p      -> URLString
"CurlHttpPost " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [HttpPost]
p
    CurlSSLCert URLString
p       -> URLString
"CurlSSLCert " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLPassword URLString
p   -> URLString
"CurlSSLPassword " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLKeyPassword URLString
p -> URLString
"CurlSSLKeyPassword " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlCRLF Bool
p -> URLString
"CurlCRLF " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlQuote [URLString]
p -> URLString
"CurlQuote " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlWriteHeader Ptr ()
p -> URLString
"CurlWriteHeader " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlCookieFile URLString
p -> URLString
"CurlCookieFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLVersion Long
p -> URLString
"CurlSSLVersion " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlTimeCondition TimeCond
p -> URLString
"CurlTimeCondition " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show TimeCond
p
    CurlTimeValue Long
p -> URLString
"CurlTimeValue " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlCustomRequest URLString
p -> URLString
"CurlCustomRequest " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlPostQuote [URLString]
p -> URLString
"CurlPostQuote " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlWriteInfo URLString
p -> URLString
"CurlWriteInfo " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlVerbose Bool
p -> URLString
"CurlVerbose " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlHeader Bool
p -> URLString
"CurlHeader " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlNoProgress Bool
p -> URLString
"CurlNoProgress " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlNoBody Bool
p -> URLString
"CurlNoBody " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFailOnError Bool
p -> URLString
"CurlFailOnError " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlUpload Bool
p -> URLString
"CurlUpload " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlPost Bool
p -> URLString
"CurlPost " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtpListOnly Bool
p -> URLString
"CurlFtpListOnly " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtpAppend Bool
p -> URLString
"CurlFtpAppend " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlUseNetRc NetRcOption
p -> URLString
"CurlUseNetRc " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show NetRcOption
p
    CurlFollowLocation Bool
p -> URLString
"CurlFollowLocation " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlTransferTextASCII Bool
p -> URLString
"CurlTransferTextASCII " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlPut Bool
p -> URLString
"CurlPut " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlProgressFunction{} -> URLString
"CurlProgressFunction <fun>"
    CurlProgressData Ptr ()
p -> URLString
"CurlProgressData " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlAutoReferer Bool
p -> URLString
"CurlAutoReferer " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlProxyPort Long
p -> URLString
"CurlProxyPort " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlPostFieldSize Long
p -> URLString
"CurlPostFieldSize " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlHttpProxyTunnel Bool
p -> URLString
"CurlHttpProxyTunnel " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlInterface URLString
p -> URLString
"CurlInterface " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlKrb4Level URLString
p -> URLString
"CurlKrb4Level " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLVerifyPeer Bool
p -> URLString
"CurlSSLVerifyPeer " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlCAInfo URLString
p -> URLString
"CurlCAInfo " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlMaxRedirs Long
p -> URLString
"CurlMaxRedirs " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlFiletime Bool
p -> URLString
"CurlFiletime " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlTelnetOptions [URLString]
p -> URLString
"CurlTelnetOptions " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlMaxConnects Long
p -> URLString
"CurlMaxConnects " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlClosePolicy Long
p -> URLString
"CurlClosePolicy " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlFreshConnect Bool
p -> URLString
"CurlFreshConnect " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlForbidReuse Bool
p -> URLString
"CurlForbidReuse " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlRandomFile URLString
p -> URLString
"CurlRandomFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlEgdSocket URLString
p -> URLString
"CurlEgdSocket " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlConnectTimeout Long
p -> URLString
"CurlConnectTimeout " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlHeaderFunction{} -> URLString
"CurlHeaderFunction <fun>"
    CurlHttpGet Bool
p -> URLString
"CurlHttpGet " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlSSLVerifyHost Long
p -> URLString
"CurlSSLVerifyHost " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlCookieJar URLString
p -> URLString
"CurlCookieJar " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLCipherList URLString
p -> URLString
"CurlSSLCipherList " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlHttpVersion HttpVersion
p -> URLString
"CurlHttpVersion " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show HttpVersion
p
    CurlFtpUseEPSV Bool
p -> URLString
"CurlFtpUseEPSV " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlSSLCertType URLString
p -> URLString
"CurlSSLCertType " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLKey URLString
p -> URLString
"CurlSSLKey " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLKeyType URLString
p -> URLString
"CurlSSLKeyType " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSLEngine URLString
p -> URLString
"CurlSSLEngine " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlOption
CurlSSLEngineDefault-> URLString
"CurlSSLEngineDefault"
    CurlDNSUseGlobalCache Bool
p -> URLString
"CurlDNSUseGlobalCache " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlDNSCacheTimeout Long
p -> URLString
"CurlDNSCacheTimeout " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlPreQuote [URLString]
p -> URLString
"CurlPreQuote " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [URLString]
p
    CurlDebugFunction{} -> URLString
"CurlDebugFunction <fun>"
    CurlDebugData Ptr ()
p -> URLString
"CurlDebugData " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlCookieSession Bool
p -> URLString
"CurlCookieSession " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlCAPath URLString
p -> URLString
"CurlCAPath " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlBufferSize Long
p -> URLString
"CurlBufferSize " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlNoSignal Bool
p -> URLString
"CurlNoSignal " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlShare Ptr ()
p -> URLString
"CurlShare " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlProxyType Long
p -> URLString
"CurlProxyType " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlEncoding URLString
p -> URLString
"CurlEncoding " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlPrivate Ptr ()
p -> URLString
"CurlPrivate " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlHttp200Aliases URLString
p -> URLString
"CurlHttp200Aliases " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlUnrestrictedAuth Bool
p -> URLString
"CurlUnrestrictedAuth " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtppUseEPRT Bool
p -> URLString
"CurlFtppUseEPRT " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlHttpAuth [HttpAuth]
p -> URLString
"CurlHttpAuth " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [HttpAuth]
p
    CurlSSLCtxFunction{} -> URLString
"CurlSSLCtxFunction <fun>"
    CurlSSLCtxData Ptr ()
p -> URLString
"CurlSSLCtxData " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlFtpCreateMissingDirs Bool
p -> URLString
"CurlFtpCreateMissingDirs " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlProxyAuth [HttpAuth]
p -> URLString
"CurlProxyAuth " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [HttpAuth]
p
    CurlFtpResponseTimeout Long
p -> URLString
"CurlFtpResponseTimeout " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlIPResolve Long
p -> URLString
"CurlIPResolve " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlMaxFileSize Long
p -> URLString
"CurlMaxFileSize " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlInFileSizeLarge LLong
p -> URLString
"CurlInFileSizeLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlResumeFromLarge LLong
p -> URLString
"CurlResumeFromLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlMaxFileSizeLarge LLong
p -> URLString
"CurlMaxFileSizeLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlNetrcFile URLString
p -> URLString
"CurlNetrcFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlFtpSSL Long
p -> URLString
"CurlFtpSSL " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlPostFieldSizeLarge LLong
p -> URLString
"CurlPostFieldSizeLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlTCPNoDelay Bool
p -> URLString
"CurlTCPNoDelay " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtpSSLAuth Long
p -> URLString
"CurlFtpSSLAuth " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlIOCTLFunction Ptr ()
p -> URLString
"CurlIOCTLFunction " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlIOCTLData Ptr ()
p -> URLString
"CurlIOCTLData " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlFtpAccount URLString
p -> URLString
"CurlFtpAccount " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlCookieList URLString
p -> URLString
"CurlCookieList " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlIgnoreContentLength Bool
p -> URLString
"CurlIgnoreContentLength " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtpSkipPASVIP Bool
p -> URLString
"CurlFtpSkipPASVIP " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlFtpFileMethod Long
p -> URLString
"CurlFtpFileMethod " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlLocalPort Long
p -> URLString
"CurlLocalPort " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlLocalPortRange Long
p -> URLString
"CurlLocalPortRange " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlConnectOnly Bool
p -> URLString
"CurlConnectOnly " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlConvFromNetworkFunction Ptr ()
p -> URLString
"CurlConvFromNetworkFunction " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlConvToNetworkFunction Ptr ()
p -> URLString
"CurlConvToNetworkFunction " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlConvFromUtf8Function Ptr ()
p -> URLString
"CurlConvFromUtf8Function " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlMaxSendSpeedLarge LLong
p -> URLString
"CurlMaxSendSpeedLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlMaxRecvSpeedLarge LLong
p -> URLString
"CurlMaxRecvSpeedLarge " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show LLong
p
    CurlFtpAlternativeToUser URLString
p -> URLString
"CurlFtpAlternativeToUser " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSockOptFunction Ptr ()
p -> URLString
"CurlSockOptFunction " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlSockOptData Ptr ()
p -> URLString
"CurlSockOptData " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Ptr ()
p
    CurlSSLSessionIdCache Bool
p -> URLString
"CurlSSLSessionIdCache " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlSSHAuthTypes [SSHAuthType]
p -> URLString
"CurlSSHAuthTypes " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show [SSHAuthType]
p
    CurlSSHPublicKeyFile URLString
p -> URLString
"CurlSSHPublicKeyFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlSSHPrivateKeyFile URLString
p -> URLString
"CurlSSHPrivateKeyFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlFtpSSLCCC Bool
p -> URLString
"CurlFtpSSLCCC " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlTimeoutMS Long
p -> URLString
"CurlTimeoutMS " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlConnectTimeoutMS Long
p -> URLString
"CurlConnectTimeoutMS " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlHttpTransferDecoding Bool
p -> URLString
"CurlHttpTransferDecoding " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlHttpContentDecoding Bool
p -> URLString
"CurlHttpContentDecoding " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlNewFilePerms Long
l -> URLString
"CurlNewFilePerms " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
l
    CurlNewDirectoryPerms Long
p -> URLString
"CurlNewDirectoryPerms " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlPostRedirect Bool
p -> URLString
"CurlPostRedirect " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlSSHHostPublicKeyMD5 URLString
p -> URLString
"CurlSSHHostPublicKeyMD5 " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlCopyPostFields Bool
p -> URLString
"CurlCopyPostFields " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Bool
p
    CurlProxyTransferMode Long
p -> URLString
"CurlProxyTransferMode " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlCRLFile       URLString
p -> URLString
"CurlCRLFile " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlIssuerCert    URLString
p -> URLString
"CurlIssuerCert " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlAddressScope  Long
p -> URLString
"CurlAddressScope " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlCertInfo      Long
p -> URLString
"CurlCertInfo " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show Long
p
    CurlUserName      URLString
p -> URLString
"CurlUserName " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlUserPassword  URLString
p -> URLString
"CurlUserPassword " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlProxyUser     URLString
p -> URLString
"CurlProxyUser " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p
    CurlProxyPassword URLString
p -> URLString
"CurlProxyPassword " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> URLString
show URLString
p