r1514: close stuff from the server_connection not in the
authorStefan Metzmacher <metze@samba.org>
Thu, 15 Jul 2004 08:28:19 +0000 (08:28 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:57:37 +0000 (12:57 -0500)
close_connection fn of a specific service

metze
(This used to be commit 0e1f5e66d37deb7a77ae9f545e60685428fd9d21)

source4/rpc_server/dcerpc_tcp.c
source4/smb_server/smb_server.c
source4/smbd/process_single.c
source4/smbd/process_standard.c
source4/smbd/process_thread.c

index c506cf16cf0144c1eb68d5ee0c2e5872794506d3..c6a85377e02f88bfd5ebcfdae4c4fdbcd328371c 100644 (file)
@@ -217,10 +217,6 @@ void dcesrv_tcp_close(struct server_connection *conn, const char *reason)
 
        DEBUG(5,("dcesrv_tcp_close: %s\n",reason));
 
-       close(conn->event.fde->fd);
-       event_remove_fd_all(conn->event.ctx, conn->socket->fde->fd);
-       event_remove_timed(conn->event.ctx, conn->event.idle);
-
        talloc_destroy(dce_conn->mem_ctx);
 
        return;
index 7d793bdf022eb2943d38f3a5c27cca0b4691291d..fd9e35074d6448f67a07d1ebd75a9b0b23761e8d 100644 (file)
@@ -782,13 +782,10 @@ static void smbsrv_close(struct server_connection *conn, const char *reason)
 
        DEBUG(5,("smbsrv_close: %s\n",reason));
 
-       close(conn->event.fde->fd);
-       event_remove_fd_all(conn->event.ctx, conn->socket->fde->fd);
-       event_remove_timed(conn->event.ctx, conn->event.idle);
-
        conn_close_all(smb_conn);
 
        talloc_destroy(smb_conn->mem_ctx);
+
        return;
 }
 
index b65418cd01ea8681be8fe7947cf1cb2ece13800e..1cba3faee3f4de625af0eb80ec5132157fb2865f 100644 (file)
@@ -122,6 +122,9 @@ static void single_terminate_connection(struct server_connection *conn, const ch
 {
        DEBUG(0,("single_terminate_connection: reason[%s]\n",reason));
        conn->service->ops->close_connection(conn,reason);
+       close(conn->event.fde->fd);
+       event_remove_fd(conn->event.ctx, conn->event.fde);
+       event_remove_timed(conn->event.ctx, conn->event.idle);
 }
 
 static int single_get_id(struct smbsrv_request *req)
index 5c2a0a3410636398a63a4bfa463647ae49bddada..424d0b417a077e512b4237fa79e0dac4962344d2 100644 (file)
@@ -146,6 +146,9 @@ static void standard_terminate_connection(struct server_connection *conn, const
 {
        DEBUG(0,("single_terminate_connection: reason[%s]\n",reason));
        conn->service->ops->close_connection(conn,reason);
+       close(conn->event.fde->fd);
+       event_remove_fd(conn->event.ctx, conn->event.fde);
+       event_remove_timed(conn->event.ctx, conn->event.idle);
        /* terminate this process */
        exit(0);
 }
index 553e67feebaca380fdac772a86d911b9c9589d4c..2ba9905f1f69e5b3c6404ac673fc2fd69c09612b 100644 (file)
@@ -162,6 +162,9 @@ static void thread_terminate_connection(struct server_connection *conn, const ch
 {
        DEBUG(0,("thread_terminate_connection: reason[%s]\n",reason));
        conn->service->ops->close_connection(conn,reason);
+       close(conn->event.fde->fd);
+       event_remove_fd(conn->event.ctx, conn->event.fde);
+       event_remove_timed(conn->event.ctx, conn->event.idle);
        /* terminate this thread */
        pthread_exit(NULL);  /* thread cleanup routine will do actual cleanup */
 }