Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] Trivial support for cloning and fetching via ftp://.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:40

Sasha Khapyorsky [off-list ref] writes:
quoted
quoted
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...
quoted
@@ -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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help