Re: [PATCH] Trivial support for cloning and fetching via ftp://.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Sep 16, 2006, 17:29 UTC
- Message-ID
- <7virjnafev.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20060916100147.GA17504@sashak.voltaire.com>
Sasha Khapyorsky <sashak@voltaire.com> writes:
Show 36 quoted lines
>> > diff --git a/http-fetch.c b/http-fetch.c
>> > index a113bb8..46d6029 100644
>> > --- a/http-fetch.c
>> > +++ b/http-fetch.c
>> > @@ -324,7 +324,9 @@ static void process_object_response(void
>> >
>> > /* Use alternates if necessary */
>> > if (obj_req->http_code == 404 ||
>> > - obj_req->curl_result == CURLE_FILE_COULDNT_READ_FILE) {
>> > + obj_req->curl_result == CURLE_FILE_COULDNT_READ_FILE ||
>> > + (obj_req->http_code == 550 &&
>> > + obj_req->curl_result == CURLE_FTP_COULDNT_RETR_FILE)) {
>>
>> Here you do the same as the code would for HTTP 404 when you get
>> 550 _and_ RETR failure...
>>
>> > @@ -538,7 +540,9 @@ static void process_alternates_response(
>> > }
>> > } else if (slot->curl_result != CURLE_OK) {
>> > if (slot->http_code != 404 &&
>> > - slot->curl_result != CURLE_FILE_COULDNT_READ_FILE) {
>> > + slot->curl_result != CURLE_FILE_COULDNT_READ_FILE &&
>> > + (slot->http_code != 550 &&
>> > + slot->curl_result != CURLE_FTP_COULDNT_RETR_FILE)) {
>> > got_alternates = -1;
>>
>> ... but you say, while the original code says "declare error if
>> it is not HTTP 404", "oh by the way, if it is 550 _or_ if it
>> is RETR failure then do not trigger this if()". I suspect you
>> meant to say this?
>>
>> (slot->http_code != 550 ||
>> slot->curl_result != CURLE_FTP_COULDNT_RETR_FILE)) {
>
> I think with less strict checking this could be done so, but with _and_
> this also ensures that we are really in FTP mode.I was merely pointing out that in one place you have:
(http_code == 550 && result == ERETR)
and another place that tries to say the opposite you have:
(http_code != 550 && result != ERETR)
which is not the same thing as
!(http_code == 550 && result == ERETR)
I understood, from the former "Use alternates if necessary" part, that you wanted to make sure that 550 is really from FTP_RETR and not other random HTTP error message, and I think that is a reasonable thing to do.