
On Mon, Feb 21, 2005 at 10:43:33AM +0000, Keith Wansbrough wrote:
John Goerzen wrote:
It turns out that Network.Socket.recv raises an EOF error when it gets back 0 bytes of data.
As it should... recv(2) returns zero bytes precisely when it reaches EOF; this is the standard sockets-API EOF indicator. See any sockets tutorial.
Of course. That's why I'm saying the exception is unexpected. recv() doesn't return -1 (indicating an error); it just returns an empty list. For what seems like a direct binding to a low-level call, this action is surprising. If it were documented in the fptools haddock docs, it probably wouldn't surprise me. But as someone that is used to the C API, that behavior is surprising.
HTTP is expecting it to return an empty list for some reason.
That is odd; HTTP must be broken.