s4:libcli/ldap Rename ldap.h to libcli_ldap.h
[garming/samba-autobuild/.git] / source4 / ldap_server / ldap_bind.c
index f37ef31c0adb15057e77e75bfca0a449072e5384..1b235f2a1bdacb5f67abd2eb5b59f2efe83df369 100644 (file)
@@ -20,7 +20,6 @@
 #include "includes.h"
 #include "ldap_server/ldap_server.h"
 #include "auth/auth.h"
-#include "libcli/ldap/ldap.h"
 #include "smbd/service.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
@@ -100,9 +99,9 @@ struct ldapsrv_sasl_context {
        struct socket_context *sasl_socket;
 };
 
-static void ldapsrv_set_sasl(void *private
+static void ldapsrv_set_sasl(void *private_data)
 {
-       struct ldapsrv_sasl_context *ctx = talloc_get_type(private, struct ldapsrv_sasl_context);
+       struct ldapsrv_sasl_context *ctx = talloc_get_type(private_data, struct ldapsrv_sasl_context);
        talloc_steal(ctx->conn->connection, ctx->sasl_socket);
        talloc_unlink(ctx->conn->connection, ctx->conn->connection->socket);
 
@@ -140,11 +139,13 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
        if (!conn->gensec) {
                conn->session_info = NULL;
 
-               status = gensec_server_start(conn,
-                                            conn->connection->event.ctx,
-                                            conn->lp_ctx,
-                                            conn->connection->msg_ctx,
-                                            &conn->gensec);
+               status = samba_server_gensec_start(conn,
+                                                  conn->connection->event.ctx,
+                                                  conn->connection->msg_ctx,
+                                                  conn->lp_ctx,
+                                                  conn->server_credentials,
+                                                  "ldap",
+                                                  &conn->gensec);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(1, ("Failed to start GENSEC server code: %s\n", nt_errstr(status)));
                        result = LDAP_OPERATIONS_ERROR;
@@ -152,10 +153,6 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
                                                 nt_errstr(status));
                } else {
                
-                       gensec_set_target_service(conn->gensec, "ldap");
-                       
-                       gensec_set_credentials(conn->gensec, conn->server_credentials);
-                       
                        gensec_want_feature(conn->gensec, GENSEC_FEATURE_SIGN);
                        gensec_want_feature(conn->gensec, GENSEC_FEATURE_SEAL);
                        gensec_want_feature(conn->gensec, GENSEC_FEATURE_ASYNC_REPLIES);
@@ -180,9 +177,6 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
                        input = *req->creds.SASL.secblob;
                }
 
-               resp->SASL.secblob = talloc(reply, DATA_BLOB);
-               NT_STATUS_HAVE_NO_MEMORY(resp->SASL.secblob);
-
                status = gensec_update(conn->gensec, reply,
                                       input, &output);
 
@@ -211,6 +205,7 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
                } else {
                        ctx->conn = conn;
                        status = gensec_socket_init(conn->gensec, 
+                                                   conn->connection,
                                                    conn->connection->socket,
                                                    conn->connection->event.ctx, 
                                                    stream_io_handler_callback,