Fix paircursor bugs
Encode the reply, not the packet
Encode correct fields (ether, not octets)
Fix error message for reply
recvfrom returns ssize_t, not size_t
UDP packets should be blocking by default.

There's no benefit to making them non-blocking.
Only TCP packets should be non-blocking

And then only if they don't have dedicated worker threads