File tree Expand file tree Collapse file tree 1 file changed +15
-8
lines changed Expand file tree Collapse file tree 1 file changed +15
-8
lines changed Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ module Database.CouchDB.HTTP
1111 , runCouchDB'
1212 ) where
1313
14- import System.Log.Logger (errorM ,debugM )
14+ import System.Log.Logger (errorM ,debugM , infoM )
1515import Network.TCP
1616import Network.Stream
1717import Network.HTTP
@@ -87,13 +87,20 @@ request path query method headers body = do
8787 url <- makeURL path query
8888 let allHeaders = (makeHeaders (length body)) ++ headers
8989 conn <- getConn
90- liftIO $ debugM " couchdb.http" $ concat [show url," " , show method]
91- response <- liftIO $ sendHTTP conn (Request url method allHeaders body)
92- case response of
93- Left connErr -> do
94- liftIO $ errorM " couchdb.http" (" request failed: " ++ show connErr)
95- fail " server error"
96- Right response -> return response
90+ let req = Request url method allHeaders body
91+ let retry 0 = do
92+ liftIO $ errorM " couchdb.http" $ " request failed: " ++ show req
93+ fail " server error"
94+ retry n = do
95+ response <- liftIO $ sendHTTP conn req
96+ case response of
97+ Left err -> do
98+ liftIO $ infoM " couchdb.http" $ " request failed; " ++ show n ++
99+ " more tries left: " ++ show req
100+ retry (n- 1 )
101+ Right val -> return val
102+ retry 2
103+
97104
98105runCouchDB :: String -- ^ hostname
99106 -> Int -- ^ port
You can’t perform that action at this time.
0 commit comments