Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-http-client for openSUSE:Factory 
checked in at 2021-09-10 23:41:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-http-client (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-http-client.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-http-client"

Fri Sep 10 23:41:22 2021 rev:44 rq:917924 version:0.7.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-http-client/ghc-http-client.changes  
2021-04-26 16:40:31.810164824 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-http-client.new.1899/ghc-http-client.changes    
    2021-09-10 23:41:44.762587142 +0200
@@ -1,0 +2,9 @@
+Fri Sep 10 09:27:55 UTC 2021 - [email protected]
+
+- Update http-client to version 0.7.9.
+  ## 0.7.9
+
+  * Exceptions from streamed request body now cause the request to fail. 
Previously they were
+    routed through onRequestBodyException and, by default, the IOExceptions 
were discarded.
+
+-------------------------------------------------------------------

Old:
----
  http-client-0.7.8.tar.gz

New:
----
  http-client-0.7.9.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-http-client.spec ++++++
--- /var/tmp/diff_new_pack.wH8AJW/_old  2021-09-10 23:41:45.226587635 +0200
+++ /var/tmp/diff_new_pack.wH8AJW/_new  2021-09-10 23:41:45.226587635 +0200
@@ -19,7 +19,7 @@
 %global pkg_name http-client
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.7.8
+Version:        0.7.9
 Release:        0
 Summary:        An HTTP client engine
 License:        MIT

++++++ http-client-0.7.8.tar.gz -> http-client-0.7.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/http-client-0.7.8/ChangeLog.md 
new/http-client-0.7.9/ChangeLog.md
--- old/http-client-0.7.8/ChangeLog.md  2021-04-21 13:33:33.000000000 +0200
+++ new/http-client-0.7.9/ChangeLog.md  2021-09-10 03:35:17.000000000 +0200
@@ -1,5 +1,10 @@
 # Changelog for http-client
 
+## 0.7.9
+
+* Exceptions from streamed request body now cause the request to fail. 
Previously they were
+  routed through onRequestBodyException and, by default, the IOExceptions were 
discarded.
+
 ## 0.7.8
 
 * Include the original `Request` in the `Response`. Expose it via 
`getOriginalRequest`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/http-client-0.7.8/Network/HTTP/Client/Request.hs 
new/http-client-0.7.9/Network/HTTP/Client/Request.hs
--- old/http-client-0.7.8/Network/HTTP/Client/Request.hs        2021-04-21 
13:33:33.000000000 +0200
+++ new/http-client-0.7.9/Network/HTTP/Client/Request.hs        2021-09-10 
03:35:17.000000000 +0200
@@ -415,6 +415,19 @@
      && ("content-encoding", "gzip") `elem` hs'
      && decompress req (fromMaybe "" $ lookup "content-type" hs')
 
+data EncapsulatedPopperException = EncapsulatedPopperException E.SomeException
+    deriving (Show)
+instance E.Exception EncapsulatedPopperException
+
+-- | Encapsulate a thrown exception into a custom type
+--
+-- During streamed body sending, both the Popper and the connection may throw 
IO exceptions;
+-- however, we don't want to route the Popper exceptions through 
onRequestBodyException.
+-- https://github.com/snoyberg/http-client/issues/469
+encapsulatePopperException :: IO a -> IO a
+encapsulatePopperException action =
+    action `E.catch` (\(ex :: E.SomeException) -> E.throwIO 
(EncapsulatedPopperException ex))
+
 requestBuilder :: Request -> Connection -> IO (Maybe (IO ()))
 requestBuilder req Connection {..} = do
     (contentLength, sendNow, sendLater) <- toTriple (requestBody req)
@@ -423,7 +436,10 @@
         else sendNow >> return Nothing
   where
     expectContinue   = Just "100-continue" == lookup "Expect" (requestHeaders 
req)
-    checkBadSend f   = f `E.catch` onRequestBodyException req
+    checkBadSend f   = f `E.catches` [
+        E.Handler (\(EncapsulatedPopperException ex) -> throwIO ex)
+      , E.Handler (onRequestBodyException req)
+      ]
     writeBuilder     = toByteStringIO connectionWrite
     writeHeadersWith contentLength = writeBuilder . (builder contentLength 
`Data.Monoid.mappend`)
     flushHeaders contentLength     = writeHeadersWith contentLength flush
@@ -464,7 +480,7 @@
         withStream (loop 0)
       where
         loop !n stream = do
-            bs <- stream
+            bs <- encapsulatePopperException stream
             if S.null bs
                 then case mlen of
                     -- If stream is chunked, no length argument
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/http-client-0.7.8/http-client.cabal 
new/http-client-0.7.9/http-client.cabal
--- old/http-client-0.7.8/http-client.cabal     2021-04-21 13:33:33.000000000 
+0200
+++ new/http-client-0.7.9/http-client.cabal     2021-09-10 03:35:17.000000000 
+0200
@@ -1,5 +1,5 @@
 name:                http-client
-version:             0.7.8
+version:             0.7.9
 synopsis:            An HTTP client engine
 description:         Hackage documentation generation is not reliable. For up 
to date documentation, please see: 
<http://www.stackage.org/package/http-client>.
 homepage:            https://github.com/snoyberg/http-client

Reply via email to