This is fix of bug introduced by 4dbe66464 commit.
The problem is that when username/password combination was not set,
the first HTTP(S) request will fail and user will be asked for
credentials. As a side effect of first HTTP(S) request, libcurl auth
method GSS-Negotiate will be disabled unconditionally. Although, we
haven't tried yet provided credentials for this auth method.

Signed-off-by: Dmitry Vilkov <dmitry.a.vil...@gmail.com>
---
 http.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/http.c b/http.c
index 0da9e66..707ea84 100644
--- a/http.c
+++ b/http.c
@@ -951,12 +951,15 @@ static int handle_curl_result(struct slot_results 
*results)
                return HTTP_MISSING_TARGET;
        else if (results->http_code == 401) {
                if (http_auth.username && http_auth.password) {
+#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
+                       if (http_auth_methods & CURLAUTH_GSSNEGOTIATE) {
+                               http_auth_methods &= ~CURLAUTH_GSSNEGOTIATE;
+                               return HTTP_REAUTH;
+                       }
+#endif
                        credential_reject(&http_auth);
                        return HTTP_NOAUTH;
                } else {
-#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
-                       http_auth_methods &= ~CURLAUTH_GSSNEGOTIATE;
-#endif
                        return HTTP_REAUTH;
                }
        } else {
-- 
2.4.10

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to