fastcgi 3001.0.2.2 → 3001.0.2.3
raw patch · 2 files changed
+17/−19 lines, 2 filesdep ~basedep ~bytestringnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, bytestring
API changes (from Hackage documentation)
Files
- Network/FastCGI.hsc +12/−10
- fastcgi.cabal +5/−9
Network/FastCGI.hsc view
@@ -28,7 +28,7 @@ import Control.Concurrent ( forkOS ) import Control.Concurrent.MVar import Control.Concurrent.QSem-import Control.Exception as Exception (catch, finally)+import Control.Exception import Control.Monad ( liftM ) import Data.Word (Word8) import Foreign ( Ptr, castPtr, nullPtr, peekArray0 @@ -75,7 +75,7 @@ foreign import ccall unsafe "fcgiapp.h FCGX_PutStr" fcgx_putStr :: CString -> CInt -> StreamPtr -> IO CInt -foreign import ccall threadsafe "fcgiapp.h FCGX_Accept" fcgx_accept+foreign import ccall safe "fcgiapp.h FCGX_Accept" fcgx_accept :: Ptr StreamPtr -> Ptr StreamPtr -> Ptr StreamPtr -> Ptr Environ -> IO CInt foreign import ccall unsafe "fcgiapp.h FCGX_Finish" fcgx_finish :: IO ()@@ -142,8 +142,8 @@ do vars <- environToTable env input <- sRead ins- output <- runCGIEnvFPS vars input (runCGIT f)- sPutStr outs output+ output' <- runCGIEnvFPS vars input (runCGIT f)+ sPutStr outs output' @@ -155,7 +155,7 @@ foreign import ccall unsafe "fcgiapp.h FCGX_InitRequest" fcgx_initrequest :: Ptr FCGX_Request -> CInt -> CInt -> IO CInt -foreign import ccall threadsafe "fcgiapp.h FCGX_Accept_r" fcgx_accept_r+foreign import ccall safe "fcgiapp.h FCGX_Accept_r" fcgx_accept_r :: Ptr FCGX_Request -> IO CInt foreign import ccall unsafe "fcgiapp.h FCGX_Finish_r" fcgx_finish_r@@ -176,11 +176,11 @@ testReturn "FCGX_Init" $ fcgx_init let loop = do waitQSem qsem reqp <- acceptRequest- fork (oneRequestMT f reqp+ _ <- fork (oneRequestMT f reqp `finally` (finishRequest reqp >> signalQSem qsem)) loop- loop `catch` \e -> log (show e)+ loop `catch` \(e::IOException) -> log (show e) oneRequestMT :: CGI CGIResult -> Ptr FCGX_Request -> IO () oneRequestMT f r = do@@ -188,9 +188,9 @@ vars <- environToTable env ins <- peekIn r input <- sRead ins- output <- runCGIEnvFPS vars input (runCGIT f)+ output' <- runCGIEnvFPS vars input (runCGIT f) outs <- peekOut r- sPutStr outs output+ sPutStr outs output' -- -- * FCGX_Reqest struct --@@ -224,7 +224,9 @@ sPutStr :: StreamPtr -> Lazy.ByteString -> IO () sPutStr h str =- mapM_ (flip BSB.unsafeUseAsCStringLen (fcgxPutCStringLen h)) (Lazy.toChunks str)+ mapM_ (flip BSB.unsafeUseAsCStringLen (fcgxPutCStringLen h))+ (Lazy.toChunks str)+ `catch` \(_ :: IOException) -> return () fcgxPutCStringLen :: StreamPtr -> CStringLen -> IO () fcgxPutCStringLen h (cs,len) =
fastcgi.cabal view
@@ -1,7 +1,7 @@ Name: fastcgi-Version: 3001.0.2.2+Version: 3001.0.2.3 Copyright: Bjorn Bringert, Lemmih-Maintainer: bjorn@bringert.net+Maintainer: Chris Done <chrisdone@gmail.com> License: BSD3 license-file: LICENSE Category: Network@@ -18,14 +18,10 @@ description: Choose the new smaller, split-up base package. library- build-depends: cgi >= 3000.0.0- if flag(small_base)- build-depends: base == 3.*, bytestring >= 0.9.0.1- else- build-depends: base == 2.*- Extensions: ForeignFunctionInterface, EmptyDataDecls+ build-depends: base >= 4 && < 5, cgi >= 3000.0.0, bytestring >= 0.9.1.5+ Extensions: ForeignFunctionInterface, EmptyDataDecls, ScopedTypeVariables Exposed-Modules: Network.FastCGI- ghc-options: -O2 -fwarn-unused-binds -fwarn-unused-imports -fwarn-unused-matches+ ghc-options: -Wall includes: fcgiapp.h extra-libraries: fcgi