lib/socket: set `last_error` on connection failed