Missing socket_nonblock
A lot of refactoring
A lot of refactoring