From: Michael J Gruber <git@drmicha.warpmail.net>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 3/6] remote-curl: don't retry auth failures with dumb protocol
Date: Fri, 14 Oct 2011 09:40:37 +0200 [thread overview]
Message-ID: <28d0c1017a10a93ce165a2d4e9fb6a691a933bd3.1318577792.git.git@drmicha.warpmail.net> (raw)
In-Reply-To: <4E9692BF.8040705@drmicha.warpmail.net>
In-Reply-To: <cover.1318577792.git.git@drmicha.warpmail.net>
From: Jeff King <peff@peff.net>
When fetching an http URL, we first try fetching info/refs
with an extra "service" parameter. This will work for a
smart-http server, or a dumb server which ignores extra
parameters when fetching files. If that fails, we retry
without the extra parameter to remain compatible with dumb
servers which didn't like our first request.
If the server returned a "401 Unauthorized", indicating that
the credentials we provided were not good, there is not much
point in retrying. With the current code, we just waste an
extra round trip to the HTTP server before failing.
But as the http code becomes smarter about throwing away
rejected credentials and re-prompting the user for new ones
(which it will later in this series), this will become more
confusing. At some point we will stop asking for credentials
to retry smart http, and will be asking for credentials to
retry dumb http. So now we're not only wasting an extra HTTP
round trip for something that is unlikely to work, but we're
making the user re-type their password for it.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
remote-curl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/remote-curl.c b/remote-curl.c
index faaeda4..6c24ab1 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -115,7 +115,7 @@ static struct discovery* discover_refs(const char *service)
http_ret = http_get_strbuf(refs_url, &buffer, HTTP_NO_CACHE);
/* try again with "plain" url (no ? or & appended) */
- if (http_ret != HTTP_OK) {
+ if (http_ret != HTTP_OK && http_ret != HTTP_NOAUTH) {
free(refs_url);
strbuf_reset(&buffer);
--
1.7.7.338.g0156b
next prev parent reply other threads:[~2011-10-14 7:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-04 10:19 Git ksshaskpass to play nice with https and kwallet Michael J Gruber
2011-10-04 10:50 ` Jeff King
2011-10-04 11:27 ` Michael J Gruber
2011-10-04 11:37 ` Jeff King
2011-10-04 12:12 ` Michael J Gruber
2011-10-04 12:43 ` Jeff King
2011-10-04 18:49 ` Michael J Gruber
2011-10-05 17:55 ` Jeff King
2011-10-05 18:01 ` Jeff King
2011-10-06 6:33 ` Michael J Gruber
2011-10-06 13:15 ` [RFC/PATCH] remote-curl: Obey passed URL Michael J Gruber
2011-10-06 13:25 ` Jeff King
2011-10-06 13:37 ` Jeff King
2011-10-12 20:51 ` Michael J Gruber
2011-10-12 21:43 ` [PATCH] http_init: accept separate URL parameter Jeff King
2011-10-12 21:46 ` Jeff King
2011-10-12 22:38 ` Junio C Hamano
2011-10-12 22:46 ` Jeff King
2011-10-13 7:26 ` Michael J Gruber
2011-10-14 7:40 ` [PATCH 0/6] http-auth-early Michael J Gruber
2011-10-14 7:40 ` [PATCH 1/6] url: decode buffers that are not NUL-terminated Michael J Gruber
2011-10-14 7:40 ` [PATCH 2/6] improve httpd auth tests Michael J Gruber
2011-10-14 7:40 ` Michael J Gruber [this message]
2011-10-14 7:40 ` [PATCH 4/6] http: retry authentication failures for all http requests Michael J Gruber
2011-10-14 7:40 ` [PATCH 5/6] http: use hostname in credential description Michael J Gruber
2011-10-14 7:40 ` [PATCH 6/6] http_init: accept separate URL parameter Michael J Gruber
2011-10-14 13:19 ` [PATCH 0/6] http-auth-early Jeff King
2011-10-14 13:24 ` Michael J Gruber
2011-10-14 18:59 ` Junio C Hamano
2011-10-13 2:06 ` [PATCH] http_init: accept separate URL parameter Tay Ray Chuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=28d0c1017a10a93ce165a2d4e9fb6a691a933bd3.1318577792.git.git@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).