svn commit: samba r7659 - in branches/SAMBA_4_0/source/librpc/rpc: .

tridge at samba.org tridge at samba.org
Fri Jun 17 00:09:17 GMT 2005


Author: tridge
Date: 2005-06-17 00:09:17 +0000 (Fri, 17 Jun 2005)
New Revision: 7659

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7659

Log:
fixup the ordering of socket destruction for ncacn_ip_tcp so we don't try and 
remove an epoll descriptor for a closed fd




Modified:
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c	2005-06-16 23:47:06 UTC (rev 7658)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c	2005-06-17 00:09:17 UTC (rev 7659)
@@ -58,6 +58,7 @@
 	struct sock_private *sock = p->transport.private;
 
 	if (sock && sock->sock != NULL) {
+		talloc_free(sock->fde);
 		talloc_free(sock->sock);
 		sock->sock = NULL;
 	}
@@ -72,8 +73,6 @@
 	if (!NT_STATUS_IS_OK(status)) {
 		p->transport.recv_data(p, NULL, status);
 	}
-
-	talloc_free(sock->fde);
 }
 
 /*
@@ -107,7 +106,7 @@
 		talloc_free(blob);
 	}
 
-	if (sock->pending_send == NULL) {
+	if (sock->pending_send == NULL && sock->sock) {
 		EVENT_FD_NOT_WRITEABLE(sock->fde);
 	}
 }
@@ -332,7 +331,7 @@
 	sock->recv.data = data_blob(NULL, 0);
 	sock->recv.pending_count = 0;
 
-	sock->fde = event_add_fd(c->event_ctx, sock, socket_get_fd(sock->sock), 
+	sock->fde = event_add_fd(c->event_ctx, sock->sock, socket_get_fd(sock->sock), 
 				 0, sock_io_handler, c);
 
 	c->transport.private = sock;



More information about the samba-cvs mailing list