On Sat, Oct 11, 2008 at 1:51 PM, Duncan Coutts <[EMAIL PROTECTED]> wrote: > Thanks for looking into this Stephen. Do you have the details on the bug > in Network.Browser? We can get that fixed. The current maintainer is > happy for us to fix stuff if it's clear what needs to be done. I'd much > rather do that than switch to the simpleHTTP which does not support > redirects or proxies, both of which we need.
I'll forward the email I sent to Bjorn. The patch I submitted to cabal install still attempts to use the redirects and proxies - it only changes behavior in the case of failure. I couldn't make heads or tails of the Browser module, other than the fact that it doesn't seem to work for me. ---------- Forwarded message ---------- From: Stephen Hicks <[EMAIL PROTECTED]> Date: Sat, Oct 11, 2008 at 11:40 AM Subject: Bug with Network.Browser To: [EMAIL PROTECTED] Hi, I've been experiencing problems with cabal update - particularly that whenever I'm behind NAT, I always get the error recv: resource vanished (Connection reset by peer) I tracked this bug down to the use of (browse . request) in Cabal's source. Replacing it with Network.HTTP.simpleHTTP (with appropriate transformations to the output) fixes the problem. But this sounds to me like a bug in Network.Browser, so I'm reporting it to you. I'm attaching at the bottom of this message a simple example. Here's the output I get from behind a NAT router: ===BEGIN OUTPUT=== simpleHTTP: success Sending: GET http://www.google.com/ HTTP/1.1 Creating new connection to www.google.com browser: failure: recv: resource vanished (Connection reset by peer) ===END OUTPUT=== The same error arises from the example found on http://homepages.paradise.net.nz/warrickg/haskell/http/#browser, though I didn't fully understand it, so I constructed my own example. Regards, steve hicks [EMAIL PROTECTED] ===BEGIN CODE=== import Network.URI import Network.HTTP import Network.Browser import Data.Maybe (fromJust) req = Request{ rqURI = fromJust $ parseURI "http://www.google.com/", rqMethod = GET, rqHeaders = [], rqBody = "" } main1 = simpleHTTP req main2 = browse $ request req try s f = catch (f >>= (\x -> seq x $ putStrLn $ s++": success")) (\e -> putStrLn $ s++": failure: "++show e) main = try "simpleHTTP" main1 >> try "browser" main2 ===END CODE=== _______________________________________________ cabal-devel mailing list [email protected] http://www.haskell.org/mailman/listinfo/cabal-devel
