re-realized that reading a 0 from a socket means that it's closed (EOF
has been hit). This fixed lots -- I should probably go back and rewrite
a couple things now, actually. Every test works except for the function
callhome() (versions 1 and 2).