We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 795cebb commit 630cc16Copy full SHA for 630cc16
Network/Socket/Info.hsc
@@ -317,16 +317,15 @@ followAddrInfo ptr_ai
317
| otherwise = do
318
a <- peek ptr_ai
319
ptr <- (# peek struct addrinfo, ai_next) ptr_ai
320
- go ptr a
+ (a :|) <$> go id ptr
321
where
322
- go :: Ptr AddrInfo -> AddrInfo -> IO (NonEmpty AddrInfo)
323
324
- | ptr == nullPtr = return $ NE.singleton a
+ go :: ([AddrInfo] -> [AddrInfo]) -> Ptr AddrInfo -> IO [AddrInfo]
+ go acc ptr
+ | ptr == nullPtr = return $ acc []
325
326
a' <- peek ptr
327
ptr' <- (# peek struct addrinfo, ai_next) ptr
328
- as <- go ptr' a'
329
- return $ NE.cons a as
+ go (acc . (a':)) ptr'
330
331
foreign import ccall safe "hsnet_getaddrinfo"
332
c_getaddrinfo :: CString -> CString -> Ptr AddrInfo -> Ptr (Ptr AddrInfo)
0 commit comments