Unverified Commit ebe658c1 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Revert "http_negotiate: do not close connection until negotiation is completed"

This reverts commit 07ebaf83.

This also reopens PR #3275 which brought the change now reverted.

Fixes #3384
Closes #3439
parent ef384c68
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
@@ -616,6 +616,7 @@ output_auth_headers(struct connectdata *conn,
    result = Curl_output_negotiate(conn, proxy);
    if(result)
      return result;
    authstatus->done = TRUE;
    negdata->state = GSS_AUTHSENT;
  }
  else
+1 −9
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
 * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
@@ -49,7 +49,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,

  /* Point to the correct struct with this */
  struct negotiatedata *neg_ctx;
  struct auth *authp;

  if(proxy) {
    userp = conn->http_proxy.user;
@@ -58,7 +57,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
              data->set.str[STRING_PROXY_SERVICE_NAME] : "HTTP";
    host = conn->http_proxy.host.name;
    neg_ctx = &data->state.proxyneg;
    authp = &conn->data->state.authproxy;
  }
  else {
    userp = conn->user;
@@ -67,7 +65,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
              data->set.str[STRING_SERVICE_NAME] : "HTTP";
    host = conn->host.name;
    neg_ctx = &data->state.negotiate;
    authp = &conn->data->state.authhost;
  }

  /* Not set means empty */
@@ -98,11 +95,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,

  if(result)
    Curl_auth_spnego_cleanup(neg_ctx);
  else
    /* If the status is different than 0 and we encountered no errors
    it means we have to continue. 0 is the OK value for both GSSAPI
    (GSS_S_COMPLETE) and SSPI (SEC_E_OK) */
    authp->done = !neg_ctx->status;

  return result;
}