Oops, I don't think we want to free connect_data->data there, as it seems to always be our account or gc. We'd want to close(connect_data->fd) instead, moving "connect_data->fd = -1" into the successful branch.