Re: [PATCH] Trivial support for cloning and fetching via ftp://.
On 10:29 Sat 16 Sep , Junio C Hamano wrote:
Show 55 quoted lines
> Sasha Khapyorsky <sashak@voltaire.com> writes:
>
> >> > 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.Good. Am I need to send the patch or you will integrate it?
Sasha