equal
deleted
inserted
replaced
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 |