Commit f78ae415 authored by David Woodhouse's avatar David Woodhouse Committed by Daniel Stenberg
Browse files

Don't clear GSSAPI state between each exchange in the negotiation

GSSAPI doesn't work very well if we forget everything ever time.

XX: Is Curl_http_done() the right place to do the final cleanup?
parent 59431c24
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1443,6 +1443,12 @@ CURLcode Curl_http_done(struct connectdata *conn,

  Curl_unencode_cleanup(conn);

#ifdef USE_HTTP_NEGOTIATE
  if(data->state.proxyneg.state == GSS_AUTHSENT ||
      data->state.negotiate.state == GSS_AUTHSENT)
    Curl_cleanup_negotiate(data);
#endif

  /* set the proper values (possibly modified on POST) */
  conn->fread_func = data->set.fread_func; /* restore */
  conn->fread_in = data->set.in; /* restore */
+0 −1
Original line number Diff line number Diff line
@@ -250,7 +250,6 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
  }

  Curl_safefree(encoded);
  Curl_cleanup_negotiate(conn->data);

  return (userp == NULL) ? CURLE_OUT_OF_MEMORY : CURLE_OK;
}
+0 −1
Original line number Diff line number Diff line
@@ -268,7 +268,6 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
  else
    conn->allocptr.userpwd = userp;
  free(encoded);
  Curl_cleanup_negotiate (conn->data);
  return (userp == NULL) ? CURLE_OUT_OF_MEMORY : CURLE_OK;
}