s3:libsmb: make use of cli_session_setup_gensec*() for Kerberos
authorStefan Metzmacher <metze@samba.org>
Wed, 2 Mar 2016 13:58:30 +0000 (14:58 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Mar 2016 05:52:30 +0000 (06:52 +0100)
This pares a fix for https://bugzilla.samba.org/show_bug.cgi?id=10288

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/libsmb/cliconnect.c

index 84ad783d216234af8cedf3e8ed501e70c2e34309..a4e4828895e768607302a74b9f1c92b0d6d16355 100644 (file)
@@ -1270,7 +1270,7 @@ static void use_in_memory_ccache(void) {
 /****************************************************************************
  Do a spnego/kerberos encrypted session setup.
 ****************************************************************************/
-
+#if 0
 struct cli_session_setup_kerberos_state {
        struct cli_state *cli;
        DATA_BLOB negTokenTarg;
@@ -1407,7 +1407,7 @@ static ADS_STATUS cli_session_setup_kerberos_recv(struct tevent_req *req)
        tevent_req_received(req);
        return ADS_SUCCESS;
 }
-
+#endif
 #endif /* HAVE_KRB5 */
 
 /****************************************************************************
@@ -2000,8 +2000,11 @@ static struct tevent_req *cli_session_setup_spnego_send(
                }
 
                if (principal) {
-                       subreq = cli_session_setup_kerberos_send(
-                               state, ev, cli, principal);
+                       subreq = cli_session_setup_gensec_send(
+                               state, ev, cli,
+                               state->account, pass, user_domain,
+                               CRED_MUST_USE_KERBEROS,
+                               "cifs", state->target_hostname, principal);
                        if (tevent_req_nomem(subreq, req)) {
                                return tevent_req_post(req, ev);
                        }
@@ -2034,9 +2037,11 @@ static void cli_session_setup_spnego_done_krb(struct tevent_req *subreq)
                subreq, struct tevent_req);
        struct cli_session_setup_spnego_state *state = tevent_req_data(
                req, struct cli_session_setup_spnego_state);
+       NTSTATUS status;
 
-       state->result = cli_session_setup_kerberos_recv(subreq);
+       status = cli_session_setup_gensec_recv(subreq);
        TALLOC_FREE(subreq);
+       state->result = ADS_ERROR_NT(status);
 
        if (ADS_ERR_OK(state->result) ||
            !state->cli->fallback_after_kerberos) {