Revision 986a8671 src/Ganeti/Utils.hs
b/src/Ganeti/Utils.hs | ||
---|---|---|
56 | 56 |
, exitIfEmpty |
57 | 57 |
, splitEithers |
58 | 58 |
, recombineEithers |
59 |
, resolveAddr |
|
59 | 60 |
) where |
60 | 61 |
|
61 | 62 |
import Data.Char (toUpper, isAlphaNum, isDigit, isSpace) |
... | ... | |
64 | 65 |
import Control.Monad (foldM) |
65 | 66 |
|
66 | 67 |
import Debug.Trace |
68 |
import Network.Socket |
|
67 | 69 |
|
68 | 70 |
import Ganeti.BasicTypes |
69 | 71 |
import qualified Ganeti.Constants as C |
... | ... | |
431 | 433 |
recombiner (_, ls, rs) t = Bad $ "Inconsistent trail log: l=" ++ |
432 | 434 |
show ls ++ ", r=" ++ show rs ++ ",t=" ++ |
433 | 435 |
show t |
436 |
|
|
437 |
-- | Default hints for the resolver |
|
438 |
resolveAddrHints :: Maybe AddrInfo |
|
439 |
resolveAddrHints = |
|
440 |
Just defaultHints { addrFlags = [AI_NUMERICHOST, AI_NUMERICSERV] } |
|
441 |
|
|
442 |
-- | Resolves a numeric address. |
|
443 |
resolveAddr :: Int -> String -> IO (Result (Family, SockAddr)) |
|
444 |
resolveAddr port str = do |
|
445 |
resolved <- getAddrInfo resolveAddrHints (Just str) (Just (show port)) |
|
446 |
return $ case resolved of |
|
447 |
[] -> Bad "Invalid results from lookup?" |
|
448 |
best:_ -> Ok (addrFamily best, addrAddress best) |
Also available in: Unified diff