gameServer/Utils.hs
branch1.0.0
changeset 15861 9d4ba1912e71
parent 15445 88770c206c31
child 15878 fc3cb23fd26f
equal deleted inserted replaced
15860:acfa0869b579 15861:9d4ba1912e71
    39 -------------------------------------------------
    39 -------------------------------------------------
    40 import CoreTypes
    40 import CoreTypes
    41 
    41 
    42 
    42 
    43 sockAddr2String :: SockAddr -> IO B.ByteString
    43 sockAddr2String :: SockAddr -> IO B.ByteString
    44 sockAddr2String (SockAddrInet _ hostAddr) = liftM B.pack $ inet_ntoa hostAddr
    44 sockAddr2String = liftM (B.pack . fromJust . fst) . getNameInfo [] True False
    45 sockAddr2String (SockAddrInet6 _ _ (a, b, c, d) _) =
       
    46     return $ B.pack $ (foldr1 (.)
       
    47         $ List.intersperse (':':)
       
    48         $ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n 65536) [a, b, c, d]) []
       
    49 
    45 
    50 maybeRead :: Read a => String -> Maybe a
    46 maybeRead :: Read a => String -> Maybe a
    51 maybeRead s = case reads s of
    47 maybeRead s = case reads s of
    52     [(x, rest)] | all isSpace rest -> Just x
    48     [(x, rest)] | all isSpace rest -> Just x
    53     _         -> Nothing
    49     _         -> Nothing