packages feed

curl 1.3.2.1 → 1.3.2.2

raw patch · 9 files changed

+217/−28 lines, 9 filesdep ~basedep ~containersnew-uploaderPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependency ranges changed: base, containers

API changes (from Hackage documentation)

+ Network.Curl.Opts: instance Enum HttpAuth
+ Network.Curl.Opts: instance Show CurlOption
+ Network.Curl.Opts: instance Show HttpAuth
+ Network.Curl.Opts: instance Show HttpVersion
+ Network.Curl.Opts: instance Show NetRcOption
+ Network.Curl.Opts: instance Show SSHAuthType
+ Network.Curl.Opts: instance Show TimeCond
+ Network.Curl.Opts: showCurlOption :: CurlOption -> String
+ Network.Curl.Post: instance Show Content
+ Network.Curl.Post: instance Show HttpPost

Files

Network/Curl.hs view
@@ -286,7 +286,7 @@   return ()  -- Use 'callbackWriter' instead.-{-# OBSOLETE #-}+{-# DEPRECATED #-} easyWriter :: (String -> IO ()) -> WriteFunction easyWriter = callbackWriter 
Network/Curl/Code.hs view
@@ -1,4 +1,5 @@-{-# OPTIONS -fffi -fvia-C -#include "curl/curl.h" #-}+{-# LANGUAGE ForeignFunctionInterface #-}+{-# OPTIONS -fvia-C -#include "curl/curl.h" #-} -------------------------------------------------------------------- -- | -- Module    : Curl.Code
Network/Curl/Easy.hs view
@@ -1,4 +1,5 @@-{-# OPTIONS -fffi -fvia-C -#include "curl/curl.h" #-}+{-# LANGUAGE ForeignFunctionInterface #-}+{-# OPTIONS -fvia-C -#include "curl/curl.h" #-} -------------------------------------------------------------------- -- | -- Module    : Curl.Easy@@ -168,25 +169,25 @@   "curl_easy_reset" easy_reset :: CurlH -> IO ()  foreign import ccall-  "curl_easy_setopt" easy_setopt_long :: CurlH -> Int -> Long -> IO CInt+  "curl_easy_setopt_long" easy_setopt_long :: CurlH -> Int -> Long -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_llong :: CurlH -> Int -> LLong -> IO CInt+  "curl_easy_setopt_longlong" easy_setopt_llong :: CurlH -> Int -> LLong -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_string :: CurlH -> Int -> Ptr CChar -> IO CInt+  "curl_easy_setopt_string" easy_setopt_string :: CurlH -> Int -> Ptr CChar -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_ptr :: CurlH -> Int -> Ptr a -> IO CInt+  "curl_easy_setopt_ptr" easy_setopt_ptr :: CurlH -> Int -> Ptr a -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_fptr :: CurlH -> Int -> FunPtr a -> IO CInt+  "curl_easy_setopt_ptr" easy_setopt_fptr :: CurlH -> Int -> FunPtr a -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_wfun :: CurlH -> Int -> FunPtr WriteFunction -> IO CInt+  "curl_easy_setopt_ptr" easy_setopt_wfun :: CurlH -> Int -> FunPtr WriteFunction -> IO CInt  foreign import ccall-  "curl_easy_setopt" easy_setopt_rfun :: CurlH -> Int -> FunPtr ReadFunctionPrim -> IO CInt+  "curl_easy_setopt_ptr" easy_setopt_rfun :: CurlH -> Int -> FunPtr ReadFunctionPrim -> IO CInt   foreign import ccall "wrapper"
Network/Curl/Info.hs view
@@ -1,4 +1,5 @@-{-# OPTIONS -fffi -fvia-C -#include "curl/curl.h" #-}+{-# LANGUAGE ForeignFunctionInterface #-}+{-# OPTIONS -fvia-C -#include "curl/curl.h" #-} -------------------------------------------------------------------- -- | -- Module    : Network.Curl.Info@@ -132,7 +133,7 @@ getInfoStr :: Curl -> String -> Long -> IO InfoValue getInfoStr h loc tg =      alloca $ \ ps -> do-        rc <- curlPrim h $ \_ p -> easy_getinfo_str p (stringTag + tg) ps+        rc <- curlPrim h $ \_ p -> easy_getinfo_str p tg ps         case rc of           0 -> do              s <- peek ps@@ -144,7 +145,7 @@ getInfoLong :: Curl -> String -> Long -> IO InfoValue getInfoLong h loc tg =      alloca $ \ pl -> do-        rc <- curlPrim h $ \_ p -> easy_getinfo_long p (longTag + tg) pl+        rc <- curlPrim h $ \_ p -> easy_getinfo_long p tg pl         case rc of           0 -> do              l <- peek pl@@ -154,7 +155,7 @@ getInfoDouble :: Curl -> String -> Long -> IO InfoValue getInfoDouble h loc tg =      alloca $ \ pd -> do-        rc <- curlPrim h $ \_ p -> easy_getinfo_double p (doubleTag + tg) pd+        rc <- curlPrim h $ \_ p -> easy_getinfo_double p tg pd         case rc of           0 -> do              d <- peek pd@@ -164,7 +165,7 @@ getInfoSList :: Curl -> String -> Long -> IO InfoValue getInfoSList h loc tg =      alloca $ \ ps -> do-        rc <- curlPrim h $ \_ p -> easy_getinfo_slist p (slistTag + tg) ps+        rc <- curlPrim h $ \_ p -> easy_getinfo_slist p tg ps         case rc of           0 -> do              p <- peek ps@@ -183,13 +184,13 @@  -- FFI decls foreign import ccall-  "curl_easy_getinfo" easy_getinfo_long :: CurlH -> Long -> Ptr Long -> IO CInt+  "curl_easy_getinfo_long" easy_getinfo_long :: CurlH -> Long -> Ptr Long -> IO CInt  foreign import ccall-  "curl_easy_getinfo" easy_getinfo_str  :: CurlH -> Long -> Ptr CString -> IO CInt+  "curl_easy_getinfo_string" easy_getinfo_str  :: CurlH -> Long -> Ptr CString -> IO CInt  foreign import ccall-  "curl_easy_getinfo" easy_getinfo_double :: CurlH -> Long -> Ptr Double -> IO CInt+  "curl_easy_getinfo_double" easy_getinfo_double :: CurlH -> Long -> Ptr Double -> IO CInt  foreign import ccall-  "curl_easy_getinfo" easy_getinfo_slist :: CurlH -> Long -> Ptr (Ptr (Ptr CChar)) -> IO CInt+  "curl_easy_getinfo_slist" easy_getinfo_slist :: CurlH -> Long -> Ptr (Ptr (Ptr CChar)) -> IO CInt
Network/Curl/Opts.hs view
@@ -165,24 +165,27 @@  | CurlHttpTransferDecoding Bool        -- ^ Disable transfer decoding; if disabled, curl will turn off chunking.  | CurlHttpContentDecoding  Bool        -- ^ Disable content decoding, getting the raw bits. +instance Show CurlOption where+  show x = showCurlOption x+ data HttpVersion  = HttpVersionNone  | HttpVersion10  | HttpVersion11-   deriving ( Enum )+   deriving ( Enum,Show )  data TimeCond  = TimeCondNone  | TimeCondIfModSince  | TimeCondIfUnmodSince  | TimeCondLastMode-   deriving ( Enum )+   deriving ( Enum, Show )   data NetRcOption  = NetRcIgnored  | NetRcOptional  | NetRcRequired-   deriving ( Enum )+   deriving ( Enum, Show )  data HttpAuth  = HttpAuthNone@@ -192,6 +195,7 @@  | HttpAuthNTLM  | HttpAuthAny  | HttpAuthAnySafe+   deriving ( Enum, Show )  toHttpAuthMask :: [HttpAuth] -> Long toHttpAuthMask [] = 0@@ -214,6 +218,7 @@  | SSHAuthPassword  | SSHAuthHost  | SSHAuthKeyboard+   deriving ( Show )   toSSHAuthMask :: [SSHAuthType] -> Long@@ -511,3 +516,147 @@  u_cptr :: Unmarshaller a -> Int -> Ptr CChar -> IO a u_cptr um x p = u_ptr um x (castPtr p)++showCurlOption :: CurlOption -> String+showCurlOption o = +  case o of+    CurlFileObj p  -> "CurlFileObj " ++ show p+    CurlURL u      -> "CurlURL " ++ show u+    CurlPort p     -> "CurlPort " ++ show p+    CurlProxy s    -> "CurlProxy " ++ show s+    CurlUserPwd p  -> "CurlUserPwd " ++ show p+    CurlProxyUserPwd p -> "CurlProxyUserPwd " ++ show p+    CurlRange p -> "CurlRange " ++ show p+    CurlInFile p -> "CurlInFile " ++ show p+    CurlErrorBuffer p -> "CurlErrorBuffer " ++ show p+    CurlWriteFunction{} -> "CurlWriteFunction <fun>"+    CurlReadFunction{}  -> "CurlReadFunction <fun>"+    CurlTimeout l       -> "CurlTimeout " ++ show l+    CurlInFileSize l    -> "CurlInFileSize " ++ show l+    CurlPostFields p    -> "CurlPostFields " ++ show p+    CurlReferer p       -> "CurlReferer " ++ show p+    CurlFtpPort p       -> "CurlFtpPort " ++ show p+    CurlUserAgent p     -> "CurlUserAgent " ++ show p+    CurlLowSpeed  p     -> "CurlLowSpeed " ++ show p+    CurlLowSpeedTime p  -> "CurlLowSpeedTime " ++ show p+    CurlResumeFrom p    -> "CurlResumeFrom " ++ show p+    CurlCookie p        -> "CurlCookie " ++ show p+    CurlHttpHeaders p   -> "CurlHttpHeaders " ++ show p+    CurlHttpPost p      -> "CurlHttpPost " ++ show p+    CurlSSLCert p       -> "CurlSSLCert " ++ show p+    CurlSSLPassword p   -> "CurlSSLPassword " ++ show p+    CurlSSLKeyPassword p -> "CurlSSLKeyPassword " ++ show p+    CurlCRLF p -> "CurlCRLF " ++ show p+    CurlQuote p -> "CurlQuote " ++ show p+    CurlWriteHeader p -> "CurlWriteHeader " ++ show p+    CurlCookieFile p -> "CurlCookieFile " ++ show p+    CurlSSLVersion p -> "CurlSSLVersion " ++ show p+    CurlTimeCondition p -> "CurlTimeCondition " ++ show p+    CurlTimeValue p -> "CurlTimeValue " ++ show p+    CurlCustomRequest p -> "CurlCustomRequest " ++ show p+    CurlPostQuote p -> "CurlPostQuote " ++ show p+    CurlWriteInfo p -> "CurlWriteInfo " ++ show p+    CurlVerbose p -> "CurlVerbose " ++ show p+    CurlHeader p -> "CurlHeader " ++ show p+    CurlNoProgress p -> "CurlNoProgress " ++ show p+    CurlNoBody p -> "CurlNoBody " ++ show p+    CurlFailOnError p -> "CurlFailOnError " ++ show p+    CurlUpload p -> "CurlUpload " ++ show p+    CurlPost p -> "CurlPost " ++ show p+    CurlFtpListOnly p -> "CurlFtpListOnly " ++ show p+    CurlFtpAppend p -> "CurlFtpAppend " ++ show p+    CurlUseNetRc p -> "CurlUseNetRc " ++ show p+    CurlFollowLocation p -> "CurlFollowLocation " ++ show p+    CurlTransferTextASCII p -> "CurlTransferTextASCII " ++ show p+    CurlPut p -> "CurlPut " ++ show p+    CurlProgressFunction{} -> "CurlProgressFunction <fun>"+    CurlProgressData p -> "CurlProgressData " ++ show p+    CurlAutoReferer p -> "CurlAutoReferer " ++ show p+    CurlProxyPort p -> "CurlProxyPort " ++ show p+    CurlPostFieldSize p -> "CurlPostFieldSize " ++ show p+    CurlHttpProxyTunnel p -> "CurlHttpProxyTunnel " ++ show p+    CurlInterface p -> "CurlInterface " ++ show p+    CurlKrb4Level p -> "CurlKrb4Level " ++ show p+    CurlSSLVerifyPeer p -> "CurlSSLVerifyPeer " ++ show p+    CurlCAInfo p -> "CurlCAInfo " ++ show p+    CurlMaxRedirs p -> "CurlMaxRedirs " ++ show p+    CurlFiletime p -> "CurlFiletime " ++ show p+    CurlTelnetOptions p -> "CurlTelnetOptions " ++ show p+    CurlMaxConnects p -> "CurlMaxConnects " ++ show p+    CurlClosePolicy p -> "CurlClosePolicy " ++ show p+    CurlFreshConnect p -> "CurlFreshConnect " ++ show p+    CurlForbidReuse p -> "CurlForbidReuse " ++ show p+    CurlRandomFile p -> "CurlRandomFile " ++ show p+    CurlEgdSocket p -> "CurlEgdSocket " ++ show p+    CurlConnectTimeout p -> "CurlConnectTimeout " ++ show p+    CurlHeaderFunction{} -> "CurlHeaderFunction <fun>"+    CurlHttpGet p -> "CurlHttpGet " ++ show p+    CurlSSLVerifyHost p -> "CurlSSLVerifyHost " ++ show p+    CurlCookieJar p -> "CurlCookieJar " ++ show p+    CurlSSLCipherList p -> "CurlSSLCipherList " ++ show p+    CurlHttpVersion p -> "CurlHttpVersion " ++ show p+    CurlFtpUseEPSV p -> "CurlFtpUseEPSV " ++ show p+    CurlSSLCertType p -> "CurlSSLCertType " ++ show p+    CurlSSLKey p -> "CurlSSLKey " ++ show p+    CurlSSLKeyType p -> "CurlSSLKeyType " ++ show p+    CurlSSLEngine p -> "CurlSSLEngine " ++ show p+    CurlSSLEngineDefault-> "CurlSSLEngineDefault"+    CurlDNSUseGlobalCache p -> "CurlDNSUseGlobalCache " ++ show p+    CurlDNSCacheTimeout p -> "CurlDNSCacheTimeout " ++ show p+    CurlPreQuote p -> "CurlPreQuote " ++ show p+    CurlDebugFunction{} -> "CurlDebugFunction <fun>"+    CurlDebugData p -> "CurlDebugData " ++ show p+    CurlCookieSession p -> "CurlCookieSession " ++ show p+    CurlCAPath p -> "CurlCAPath " ++ show p+    CurlBufferSize p -> "CurlBufferSize " ++ show p+    CurlNoSignal p -> "CurlNoSignal " ++ show p+    CurlShare p -> "CurlShare " ++ show p+    CurlProxyType p -> "CurlProxyType " ++ show p+    CurlEncoding p -> "CurlEncoding " ++ show p+    CurlPrivate p -> "CurlPrivate " ++ show p+    CurlHttp200Aliases p -> "CurlHttp200Aliases " ++ show p+    CurlUnrestrictedAuth p -> "CurlUnrestrictedAuth " ++ show p+    CurlFtppUseEPRT p -> "CurlFtppUseEPRT " ++ show p+    CurlHttpAuth p -> "CurlHttpAuth " ++ show p+    CurlSSLCtxFunction{} -> "CurlSSLCtxFunction <fun>"+    CurlSSLCtxData p -> "CurlSSLCtxData " ++ show p+    CurlFtpCreateMissingDirs p -> "CurlFtpCreateMissingDirs " ++ show p+    CurlProxyAuth p -> "CurlProxyAuth " ++ show p+    CurlFtpResponseTimeout p -> "CurlFtpResponseTimeout " ++ show p+    CurlIPResolve p -> "CurlIPResolve " ++ show p+    CurlMaxFileSize p -> "CurlMaxFileSize " ++ show p+    CurlInFileSizeLarge p -> "CurlInFileSizeLarge " ++ show p+    CurlResumeFromLarge p -> "CurlResumeFromLarge " ++ show p+    CurlMaxFileSizeLarge p -> "CurlMaxFileSizeLarge " ++ show p+    CurlNetrcFile p -> "CurlNetrcFile " ++ show p+    CurlFtpSSL p -> "CurlFtpSSL " ++ show p+    CurlPostFieldSizeLarge p -> "CurlPostFieldSizeLarge " ++ show p+    CurlTCPNoDelay p -> "CurlTCPNoDelay " ++ show p+    CurlFtpSSLAuth p -> "CurlFtpSSLAuth " ++ show p+    CurlIOCTLFunction p -> "CurlIOCTLFunction " ++ show p+    CurlIOCTLData p -> "CurlIOCTLData " ++ show p+    CurlFtpAccount p -> "CurlFtpAccount " ++ show p+    CurlCookieList p -> "CurlCookieList " ++ show p+    CurlIgnoreContentLength p -> "CurlIgnoreContentLength " ++ show p+    CurlFtpSkipPASVIP p -> "CurlFtpSkipPASVIP " ++ show p+    CurlFtpFileMethod p -> "CurlFtpFileMethod " ++ show p+    CurlLocalPort p -> "CurlLocalPort " ++ show p+    CurlLocalPortRange p -> "CurlLocalPortRange " ++ show p+    CurlConnectOnly p -> "CurlConnectOnly " ++ show p+    CurlConvFromNetworkFunction p -> "CurlConvFromNetworkFunction " ++ show p+    CurlConvToNetworkFunction p -> "CurlConvToNetworkFunction " ++ show p+    CurlConvFromUtf8Function p -> "CurlConvFromUtf8Function " ++ show p+    CurlMaxSendSpeedLarge p -> "CurlMaxSendSpeedLarge " ++ show p+    CurlMaxRecvSpeedLarge p -> "CurlMaxRecvSpeedLarge " ++ show p+    CurlFtpAlternativeToUser p -> "CurlFtpAlternativeToUser " ++ show p+    CurlSockOptFunction p -> "CurlSockOptFunction " ++ show p+    CurlSockOptData p -> "CurlSockOptData " ++ show p+    CurlSSLSessionIdCache p -> "CurlSSLSessionIdCache " ++ show p+    CurlSSHAuthTypes p -> "CurlSSHAuthTypes " ++ show p+    CurlSSHPublicKeyFile p -> "CurlSSHPublicKeyFile " ++ show p+    CurlSSHPrivateKeyFile p -> "CurlSSHPrivateKeyFile " ++ show p+    CurlFtpSSLCCC p -> "CurlFtpSSLCCC " ++ show p+    CurlTimeoutMS p -> "CurlTimeoutMS " ++ show p+    CurlConnectTimeoutMS p -> "CurlConnectTimeoutMS " ++ show p+    CurlHttpTransferDecoding p -> "CurlHttpTransferDecoding " ++ show p+    CurlHttpContentDecoding p -> "CurlHttpContentDecoding " ++ show p
Network/Curl/Post.hs view
@@ -1,4 +1,5 @@-{-# OPTIONS -fffi -fvia-C -#include "curl/curl.h" #-}+{-# LANGUAGE ForeignFunctionInterface #-}+{-# OPTIONS -fvia-C -#include "curl/curl.h" #-} -------------------------------------------------------------------- -- | -- Module    : Network.Curl.Post@@ -35,12 +36,13 @@      , extraHeaders :: [Header] -- not yet:     , extraEntries :: [HttpPost]      , showName     :: Maybe String-     }+     } deriving ( Show )  data Content  = ContentFile   FilePath  | ContentBuffer (Ptr CChar) Long -- byte arrays also?  | ContentString String+   deriving ( Show )  multiformString :: String -> String -> HttpPost multiformString x y = 
Network/Curl/Types.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -fffi -fglasgow-exts #-}+{-# LANGUAGE ForeignFunctionInterface, EmptyDataDecls #-} -------------------------------------------------------------------- -- | -- Module    : Network.Curl.Types
curl.cabal view
@@ -1,5 +1,5 @@ name:               curl-version:            1.3.2.1+version:            1.3.2.2 synopsis:           Haskell binding to libcurl description:     libcurl is a client-side URL transfer library, supporting FTP, FTPS, HTTP,@@ -13,7 +13,7 @@ license:            BSD3 license-file:       LICENSE author:             Sigbjorn Finne-maintainer:         emertens@galois.com, diatchki@.galois.com+maintainer:         Sigbjorn Finne <sigbjorn.finne@gmail.com> build-depends:      base build-type:         Configure cabal-version:      >= 1.2@@ -33,12 +33,13 @@                    Network.Curl.Easy                    Network.Curl.Debug +  c-sources: curlc.c   Extra-libraries: curl   Extensions:      CPP, ForeignFunctionInterface   Ghc-options:     -Wall -fvia-C    Build-Depends: base   if flag(new-base)-    Build-depends: base >= 3, containers+    Build-depends: base >= 3 && < 4, containers   else     Build-depends: base < 3
+ curlc.c view
@@ -0,0 +1,34 @@+#include <curl/curl.h>++int curl_easy_getinfo_long(void *curl, long tg, long *pl)+{+    return curl_easy_getinfo(curl, CURLINFO_LONG+tg, pl);+}++int curl_easy_getinfo_string(void *curl, long tg, char **s)+{+    return curl_easy_getinfo(curl, CURLINFO_STRING+tg, s);+}++int curl_easy_getinfo_double(void *curl, long tg, double *d)+{+    return curl_easy_getinfo(curl, CURLINFO_DOUBLE+tg, d);+}++int curl_easy_getinfo_slist(void *curl, long tg, char ***s)+{+    return curl_easy_getinfo(curl, CURLINFO_SLIST+tg, s);+}+++int curl_easy_setopt_long(void *curl, int i, long x)+{ return curl_easy_setopt(curl,i,x); }++int curl_easy_setopt_longlong(void *curl, int i, long long x)+{ return curl_easy_setopt(curl,i,x); }++int curl_easy_setopt_string(void *curl, int i, char *x)+{ return curl_easy_setopt(curl,i,x); }++int curl_easy_setopt_ptr(void *curl, int i, void *x)+{ return curl_easy_setopt(curl,i,x); }