Commit 4b95c181aa41600242f3eee5485b74056c02e05a
- Diff rendering mode:
- inline
- side by side
ADNS/Resolver.hs
(2 / 2)
|   | |||
| 26 | 26 | import Control.Concurrent.MVar | |
| 27 | 27 | import Control.Monad ( when ) | |
| 28 | 28 | import Data.List ( sortBy ) | |
| 29 | import Data.Map ( Map ) | ||
| 29 | import Data.Map ( Map ) | ||
| 30 | 30 | import qualified Data.Map as Map | |
| 31 | 31 | import Network ( HostName ) | |
| 32 | 32 | import Network.Socket ( HostAddress ) | |
| … | … | ||
| 166 | 166 | r <- adnsWait dns | |
| 167 | 167 | case r of | |
| 168 | 168 | Nothing -> return (RState dns qs, False) | |
| 169 | Just (q,a) -> do mv <- Map.lookup q qs | ||
| 169 | Just (q,a) -> do mv <- maybe (fail "inconsistent ADNS state") return (Map.lookup q qs) | ||
| 170 | 170 | putMVar mv a | |
| 171 | 171 | return (RState dns (Map.delete q qs), True) | |
| 172 | 172 | when more (resolveLoop mst) |

