Ticket #3 (closed defect: fixed)
Cannot call connect with a socket that is already bound.
|Reported by:||igloo||Owned by:|
Originally reported here: http://hackage.haskell.org/trac/ghc/ticket/2784
> import Network.Socket > sock <- socket AF_INET Datagram 0 Loading package parsec-126.96.36.199 ... linking ... done. Loading package network-188.8.131.52 ... linking ... done. > bindSocket sock (SockAddrInet aNY_PORT iNADDR_ANY) > connect sock undefined *** Exception: user error (connect: can't peform connect on socket in status Bound)
Network.Socket.connect checks the SocketStatus of the socket:
if currentStatus /= NotConnected
From The Open Group Base Specifications Issue 6: "If the socket has not already been bound to a local address, connect() shall bind it to an address which, unless the socket's address family is AF_UNIX, is an unused local address."