On Sun 64 platforms the math for calculating the fd_set
bit is wrong.
bit = 1 << (fd%(NBBY*sizeof(fd_mask)));
sizeof(fd_mask) is 8, but sizeof(1) is 4. The easiest
fix for this is to change bit && "1" to unsigned long.
Note: this code pattern is copy/pasted throughout this
file, and all places need to be fixed. However, out of
curiosity, why aren't we using FD_SET/ISSET etc?