I agree it seems weird. On the other hand, we will either have CURLE_OK and a 500 response code, or not CURLE_OK and no valid response code, so one or the other is what we will see in practice. An alternate for clarity is to have a bool first = true, then make it false. Clearer, but clunkier. Thoughts?