<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/http.c, branch v2.32.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.32.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.32.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2021-05-20T20:49:41Z</updated>
<entry>
<title>Merge branch 'cs/http-use-basic-after-failed-negotiate'</title>
<updated>2021-05-20T20:49:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-05-20T20:48:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c69f2f8c869361e9e2bdb9fb3ceb2fe058013744'/>
<id>urn:sha1:c69f2f8c869361e9e2bdb9fb3ceb2fe058013744</id>
<content type='text'>
Regression fix for a change made during this cycle.

* cs/http-use-basic-after-failed-negotiate:
  Revert "remote-curl: fall back to basic auth if Negotiate fails"
  t5551: test http interaction with credential helpers
</content>
</entry>
<entry>
<title>Revert "remote-curl: fall back to basic auth if Negotiate fails"</title>
<updated>2021-05-19T01:09:58Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2021-05-18T06:27:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ecf7b129fa8619bfe16c5f7e470717ad79186e07'/>
<id>urn:sha1:ecf7b129fa8619bfe16c5f7e470717ad79186e07</id>
<content type='text'>
This reverts commit 1b0d9545bb85912a16b367229d414f55d140d3be.

That commit does fix the situation it intended to (avoiding Negotiate
even when the credentials were provided in the URL), but it creates a
more serious regression: we now never hit the conditional for "we had a
username and password, tried them, but the server still gave us a 401".
That has two bad effects:

 1. we never call credential_reject(), and thus a bogus credential
    stored by a helper will live on forever

 2. we never return HTTP_NOAUTH, so the error message the user gets is
    "The requested URL returned error: 401", instead of "Authentication
    failed".

Doing this correctly seems non-trivial, as we don't know whether the
Negotiate auth was a problem. Since this is a regression in the upcoming
v2.23.0 release (for which we're in -rc0), let's revert for now and work
on a fix separately.

(Note that this isn't a pure revert; the previous commit added a test
showing the regression, so we can now flip it to expect_success).

Reported-by: Ben Humphreys &lt;behumphreys@atlassian.com&gt;
Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Use the final_oid_fn to finalize hashing of object IDs</title>
<updated>2021-04-27T07:31:38Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2021-04-26T01:02:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5951bf467ea92458c3bea3051c8413041f3b27d5'/>
<id>urn:sha1:5951bf467ea92458c3bea3051c8413041f3b27d5</id>
<content type='text'>
When we're hashing a value which is going to be an object ID, we want to
zero-pad that value if necessary.  To do so, use the final_oid_fn
instead of the final_fn anytime we're going to create an object ID to
ensure we perform this operation.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'cs/http-use-basic-after-failed-negotiate'</title>
<updated>2021-03-30T21:35:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-03-30T21:35:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=501380286295cac300dae86c3f0f6c10ff34b767'/>
<id>urn:sha1:501380286295cac300dae86c3f0f6c10ff34b767</id>
<content type='text'>
When accessing a server with a URL like https://user:pass@site/, we
did not to fall back to the basic authentication with the
credential material embedded in the URL after the "Negotiate"
authentication failed.  Now we do.

* cs/http-use-basic-after-failed-negotiate:
  remote-curl: fall back to basic auth if Negotiate fails
</content>
</entry>
<entry>
<title>Merge branch 'js/http-pki-credential-store'</title>
<updated>2021-03-26T21:59:02Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-03-26T21:59:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8c81fce4b07c7e0f76960f35b6ffdc817c09b7ad'/>
<id>urn:sha1:8c81fce4b07c7e0f76960f35b6ffdc817c09b7ad</id>
<content type='text'>
The http codepath learned to let the credential layer to cache the
password used to unlock a certificate that has successfully been
used.

* js/http-pki-credential-store:
  http: drop the check for an empty proxy password before approving
  http: store credential when PKI auth is used
</content>
</entry>
<entry>
<title>remote-curl: fall back to basic auth if Negotiate fails</title>
<updated>2021-03-22T18:55:41Z</updated>
<author>
<name>Christopher Schenk</name>
<email>christopher@cschenk.net</email>
</author>
<published>2021-03-22T11:51:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1b0d9545bb85912a16b367229d414f55d140d3be'/>
<id>urn:sha1:1b0d9545bb85912a16b367229d414f55d140d3be</id>
<content type='text'>
When the username and password are supplied in a url like this
https://myuser:secret@git.exampe/myrepo.git and the server supports the
negotiate authenticaten method, git does not fall back to basic auth and
libcurl hardly tries to authenticate with the negotiate method.

Stop using the Negotiate authentication method after the first failure
because if it fails on the first try it will never succeed.

Signed-off-by: Christopher Schenk &lt;christopher@cschenk.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>use CALLOC_ARRAY</title>
<updated>2021-03-14T00:00:09Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2021-03-13T16:17:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ca56dadb4b65ccaeab809d80db80a312dc00941a'/>
<id>urn:sha1:ca56dadb4b65ccaeab809d80db80a312dc00941a</id>
<content type='text'>
Add and apply a semantic patch for converting code that open-codes
CALLOC_ARRAY to use it instead.  It shortens the code and infers the
element size automatically.

Signed-off-by: René Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: drop the check for an empty proxy password before approving</title>
<updated>2021-03-12T06:17:10Z</updated>
<author>
<name>John Szakmeister</name>
<email>john@szakmeister.net</email>
</author>
<published>2021-03-12T02:40:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a4a4439fdf2fa5867b3f30040be535cff65b8a42'/>
<id>urn:sha1:a4a4439fdf2fa5867b3f30040be535cff65b8a42</id>
<content type='text'>
credential_approve() already checks for a non-empty password before
saving, so there's no need to do the extra check here.

Signed-off-by: John Szakmeister &lt;john@szakmeister.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: store credential when PKI auth is used</title>
<updated>2021-03-12T06:17:07Z</updated>
<author>
<name>John Szakmeister</name>
<email>john@szakmeister.net</email>
</author>
<published>2021-03-12T02:40:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cd27f604e41475633d068d3f4852ab6b597c5e75'/>
<id>urn:sha1:cd27f604e41475633d068d3f4852ab6b597c5e75</id>
<content type='text'>
We already looked for the PKI credentials in the credential store, but
failed to approve it on success.  Meaning, the PKI certificate password
was never stored and git would request it on every connection to the
remote.  Let's complete the chain by storing the certificate password on
success.

Likewise, we also need to reject the credential when there is a failure.
Curl appears to report client-related certificate issues are reported
with the CURLE_SSL_CERTPROBLEM error.  This includes not only a bad
password, but potentially other client certificate related problems.
Since we cannot get more information from curl, we'll go ahead and
reject the credential upon receiving that error, just to be safe and
avoid caching or saving a bad password.

Signed-off-by: John Szakmeister &lt;john@szakmeister.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: allow custom index-pack args</title>
<updated>2021-02-22T20:07:40Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2021-02-22T19:20:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=726b25a91ba0e8f26f83c8d39ad16351b7bdb510'/>
<id>urn:sha1:726b25a91ba0e8f26f83c8d39ad16351b7bdb510</id>
<content type='text'>
Currently, when fetching, packfiles referenced by URIs are run through
index-pack without any arguments other than --stdin and --keep, no
matter what arguments are used for the packfile that is inline in the
fetch response. As a preparation for ensuring that all packs (whether
inline or not) use the same index-pack arguments, teach the http
subsystem to allow custom index-pack arguments.

http-fetch has been updated to use the new API. For now, it passes
--keep alone instead of --keep with a process ID, but this is only
temporary because http-fetch itself will be taught to accept index-pack
parameters (instead of using a hardcoded constant) in a subsequent
commit.

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
