
Adam,
This does the trick, thanks! I certainly would not have been
able to track down such an insidious `issue' without much
agony and despair.
- Scott
On Fri, Mar 7, 2008 at 10:48 AM, Adam Langley
On Fri, Mar 7, 2008 at 8:10 AM, Scott Bell
wrote: my test program. The Haskell version, however, does not return from recvFrom. I've also tried wrapping this in a withSocketsDo, with no effect.
So this is a long standing, ah, issue with the Network modules.
Try sending a UDP packet to port 45607 and you'll find that the Haskell code gets it.
hex(45607) = 0xb227 0x27b2 = 10162
In short, PortNum doesn't do the endian conversion for you. And I don't know a good way to figure out the endianness of the underlying system from Haskell I'm afraid. I usually end up FFIing out to htons or just assuming that the system is little-endian.
We should really fix this unless there's some trick that I've been missing all this time.
AGL
-- Adam Langley agl@imperialviolet.org http://www.imperialviolet.org