• J
    remote-curl: do not call run_slot repeatedly · abf8df86
    Jeff King 提交于
    Commit b81401c1 (http: prompt for credentials on failed POST)
    taught post_rpc to call run_slot in a loop in order to retry
    a request after asking the user for credentials. However,
    after a call to run_slot we will have called
    finish_active_slot. This means we have released the slot,
    and we should no longer look at it.
    
    As it happens, this does not cause any bugs in the current
    code, since we know that we are not using curl_multi in this
    code path, and therefore nobody will have taken over our
    slot in the meantime. However, it is good form to actually
    call get_active_slot again. It also future proofs us against
    changes in the http code.
    
    We can do this by jumping back to a retry label at the top
    of our function. We just need to reorder a few setup lines
    that should not be repeated; everything else within the loop
    is either idempotent, needs to be repeated, or in a path we
    do not follow (e.g., we do not even try when large_request
    is set, because we don't know how much data we might have
    streamed from our helper program).
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    abf8df86
remote-curl.c 21.6 KB