I wrote:
> The cleanest fix might be to change those various "long" variables
> to uint32. You'd have to think about how to handle the ntohl/htonl
> calls that are used on them, though.
Or actually, no, you wouldn't have to think very hard. I was supposing
that those calls were declared to traffic in "long"s, but they aren't
and never have been, at least not since SUSv2:
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
So s/long/uint32/ would probably fix it just fine.
regards, tom lane