Revision 986a8671
b/src/Ganeti/Daemon.hs | ||
---|---|---|
263 | 263 |
Socket.SockAddrInet6 (fromIntegral port) 0 Socket.iN6ADDR_ANY 0) |
264 | 264 |
defaultBindAddr _ fam = Bad $ "Unsupported address family: " ++ show fam |
265 | 265 |
|
266 |
-- | Default hints for the resolver |
|
267 |
resolveAddrHints :: Maybe Socket.AddrInfo |
|
268 |
resolveAddrHints = |
|
269 |
Just Socket.defaultHints { Socket.addrFlags = [Socket.AI_NUMERICHOST, |
|
270 |
Socket.AI_NUMERICSERV] } |
|
271 |
|
|
272 |
-- | Resolves a numeric address. |
|
273 |
resolveAddr :: Int -> String -> IO (Result (Socket.Family, Socket.SockAddr)) |
|
274 |
resolveAddr port str = do |
|
275 |
resolved <- Socket.getAddrInfo resolveAddrHints (Just str) (Just (show port)) |
|
276 |
return $ case resolved of |
|
277 |
[] -> Bad "Invalid results from lookup?" |
|
278 |
best:_ -> Ok (Socket.addrFamily best, Socket.addrAddress best) |
|
279 |
|
|
280 | 266 |
-- | Based on the options, compute the socket address to use for the |
281 | 267 |
-- daemon. |
282 | 268 |
parseAddress :: DaemonOptions -- ^ Command line options |
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