s4-ldapserver: serialise ldap server operations
[kai/samba.git] / source4 / ldap_server / ldap_extended.c
index fe917cf7f27d1c8ff8210cc442abf58216e79346..78fd43caac8ccfe5a3483d6ed2c9006b82313427 100644 (file)
@@ -19,8 +19,7 @@
 
 #include "includes.h"
 #include "ldap_server/ldap_server.h"
-#include "lib/util/dlinklist.h"
-#include "libcli/ldap/ldap.h"
+#include "../lib/util/dlinklist.h"
 #include "lib/tls/tls.h"
 #include "smbd/service_stream.h"
 
@@ -29,15 +28,15 @@ struct ldapsrv_starttls_context {
        struct socket_context *tls_socket;
 };
 
-static void ldapsrv_start_tls(void *private
+static void ldapsrv_start_tls(void *private_data)
 {
-       struct ldapsrv_starttls_context *ctx = talloc_get_type(private, struct ldapsrv_starttls_context);
+       struct ldapsrv_starttls_context *ctx = talloc_get_type(private_data, struct ldapsrv_starttls_context);
        talloc_steal(ctx->conn->connection, ctx->tls_socket);
-       talloc_unlink(ctx->conn->connection, ctx->conn->connection->socket);
 
        ctx->conn->sockets.tls = ctx->tls_socket;
        ctx->conn->connection->socket = ctx->tls_socket;
        packet_set_socket(ctx->conn->packet, ctx->conn->connection->socket);
+       packet_set_unreliable_select(ctx->conn->packet);
 }
 
 static NTSTATUS ldapsrv_StartTLS(struct ldapsrv_call *call,
@@ -104,7 +103,7 @@ NTSTATUS ldapsrv_ExtendedRequest(struct ldapsrv_call *call)
        int result = LDAP_PROTOCOL_ERROR;
        const char *error_str = NULL;
        NTSTATUS status = NT_STATUS_OK;
-       uint32_t i;
+       unsigned int i;
 
        DEBUG(10, ("Extended\n"));