Ticket #7 (assigned defect)
Network.Socket.recv throws IOException on reading 0 bytes
|Reported by:||tibbe||Owned by:||tibbe|
Initially reported here: http://hackage.haskell.org/trac/ghc/ticket/3071
My man pages has the following to say about the return value of recv:
These calls return the number of bytes received, or -1 if an error occurred.
For TCP sockets, the return value 0 means the peer has closed its half side of the connection.
This means that it's absolutely fine to read 0 bytes when using e.g. UDP socket.
However, the Network.Socket.recv function always throws an exception upon reading 0 bytes regardless of the protocol family.