[Haskell-cafe] Network.Socket error in MacOS 10.5?
Hi, I encountered a problem with Network.Socket in MacOS 10.5 Here is the code that I am testing, - - module Main where import qualified Network.Socket as Socket main :: IO () main = do { (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrUnix localhost) -- (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrInet 9000 (127 + 0 * 256 + 0 * 256^2 + 1 * 256^3)) ; putStrLn (show hostname) } Running the above code yields the following error ghc --make -O2 TestSocket.hs [1 of 1] Compiling Main ( TestSocket.hs, TestSocket.o ) Linking TestSocket ... $ ./TestSocket TestSocket: getNameInfo: does not exist (ai_family not supported) If I switch to SockAddrInet instead, the error is gone. I am using GHC 6.10.3 and Network 2.2.1 Regards, Kenny ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Network.Socket error in MacOS 10.5?
On Wed, Aug 26, 2009 at 6:33 PM, kenny luhaskellm...@gmail.com wrote: Hi, I encountered a problem with Network.Socket in MacOS 10.5 Here is the code that I am testing, - - module Main where import qualified Network.Socket as Socket main :: IO () main = do { (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrUnix localhost) -- (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrInet 9000 (127 + 0 * 256 + 0 * 256^2 + 1 * 256^3)) ; putStrLn (show hostname) } Running the above code yields the following error ghc --make -O2 TestSocket.hs [1 of 1] Compiling Main ( TestSocket.hs, TestSocket.o ) Linking TestSocket ... $ ./TestSocket TestSocket: getNameInfo: does not exist (ai_family not supported) If I switch to SockAddrInet instead, the error is gone. I am using GHC 6.10.3 and Network 2.2.1 Is SockAddrUnix supposed to work on Mac OS X? Could you test it by e.g. writing a small C program that uses it? -- Johan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Network.Socket error in MacOS 10.5?
I don't think getNameInfo should work for for AF_UNIX -- the name given to SockAddrUnix is a file path, there is no name resolution. From the man page for getnameinfo(3) on OS X: NAME getnameinfo -- socket address structure to hostname and service name ... DESCRIPTION ... The sockaddr structure sa should point to either a sockaddr_in or sockaddr_in6 structure (for IPv4 or IPv6 respectively) that is salen bytes long. Similarly, from the man page for getnameinfo on my linux box: ... The sa argument is a pointer to a generic socket address structure (of type sockaddr_in or sockaddr_in6) of size salen that holds the input IP address and port number. -Ross On Aug 26, 2009, at 2:07 PM, Johan Tibell wrote: On Wed, Aug 26, 2009 at 6:33 PM, kenny luhaskellm...@gmail.com wrote: Hi, I encountered a problem with Network.Socket in MacOS 10.5 Here is the code that I am testing, - - module Main where import qualified Network.Socket as Socket main :: IO () main = do { (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrUnix localhost) -- (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrInet 9000 (127 + 0 * 256 + 0 * 256^2 + 1 * 256^3)) ; putStrLn (show hostname) } Running the above code yields the following error ghc --make -O2 TestSocket.hs [1 of 1] Compiling Main ( TestSocket.hs, TestSocket.o ) Linking TestSocket ... $ ./TestSocket TestSocket: getNameInfo: does not exist (ai_family not supported) If I switch to SockAddrInet instead, the error is gone. I am using GHC 6.10.3 and Network 2.2.1 Is SockAddrUnix supposed to work on Mac OS X? Could you test it by e.g. writing a small C program that uses it? -- Johan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Network.Socket error in MacOS 10.5?
Thanks for the pointers. I will take a look. Kenny On Thu, Aug 27, 2009 at 2:20 AM, Ross Mellgren rmm-hask...@z.odi.ac wrote: I don't think getNameInfo should work for for AF_UNIX -- the name given to SockAddrUnix is a file path, there is no name resolution. From the man page for getnameinfo(3) on OS X: NAME getnameinfo -- socket address structure to hostname and service name ... DESCRIPTION ... The sockaddr structure sa should point to either a sockaddr_in or sockaddr_in6 structure (for IPv4 or IPv6 respectively) that is salen bytes long. Similarly, from the man page for getnameinfo on my linux box: ... The sa argument is a pointer to a generic socket address structure (of type sockaddr_in or sockaddr_in6) of size salen that holds the input IP address and port number. -Ross On Aug 26, 2009, at 2:07 PM, Johan Tibell wrote: On Wed, Aug 26, 2009 at 6:33 PM, kenny luhaskellm...@gmail.com wrote: Hi, I encountered a problem with Network.Socket in MacOS 10.5 Here is the code that I am testing, - - module Main where import qualified Network.Socket as Socket main :: IO () main = do { (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrUnix localhost) -- (hostname, _) - Socket.getNameInfo [] True False (Socket.SockAddrInet 9000 (127 + 0 * 256 + 0 * 256^2 + 1 * 256^3)) ; putStrLn (show hostname) } Running the above code yields the following error ghc --make -O2 TestSocket.hs [1 of 1] Compiling Main ( TestSocket.hs, TestSocket.o ) Linking TestSocket ... $ ./TestSocket TestSocket: getNameInfo: does not exist (ai_family not supported) If I switch to SockAddrInet instead, the error is gone. I am using GHC 6.10.3 and Network 2.2.1 Is SockAddrUnix supposed to work on Mac OS X? Could you test it by e.g. writing a small C program that uses it? -- Johan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe