s4:ldap_server: the tls code steals the original socket on its own now
authorStefan Metzmacher <metze@samba.org>
Thu, 30 Jul 2009 06:43:14 +0000 (08:43 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 31 Jul 2009 12:42:04 +0000 (14:42 +0200)
metze

source4/ldap_server/ldap_extended.c
source4/ldap_server/ldap_server.c

index 66ab4eea322b5ca9791695ba761825ed33cd95b7..6d630b4922412e19deedb2504e3f2c795e20b13a 100644 (file)
@@ -33,7 +33,6 @@ static void ldapsrv_start_tls(void *private_data)
 {
        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;
index 2f32bb6019eba2303676e1b59c81c034632c7c8b..72431e96690a66dd5bbc2f63d0667d25df609f14 100644 (file)
@@ -49,6 +49,8 @@
 void ldapsrv_terminate_connection(struct ldapsrv_connection *conn, 
                                         const char *reason)
 {
+       packet_recv_disable(conn->packet);
+       TALLOC_FREE(conn->packet);
        stream_terminate_connection(conn->connection, reason);
 }
 
@@ -365,7 +367,6 @@ static void ldapsrv_accept(struct stream_connection *c,
                        ldapsrv_terminate_connection(conn, "ldapsrv_accept: tls_init_server() failed");
                        return;
                }
-               talloc_unlink(c, c->socket);
                talloc_steal(c, tls_socket);
                c->socket = tls_socket;
                conn->sockets.tls = tls_socket;