diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-01-17 22:53:37 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:08:58 -0500 |
commit | 196a5ec240c0386aff4f4442c9c44ac7cdd0a494 (patch) | |
tree | 03502ad2aea459c9a9e613bfee7ba275f791832b /source4/libcli | |
parent | c06493912b9a8bb39a3d3459b9597daaa5d1c065 (diff) | |
download | samba-196a5ec240c0386aff4f4442c9c44ac7cdd0a494.tar.gz samba-196a5ec240c0386aff4f4442c9c44ac7cdd0a494.tar.bz2 samba-196a5ec240c0386aff4f4442c9c44ac7cdd0a494.zip |
r4811: now that the event context is at the socket level, the event cleanup
should be there too
(This used to be commit 058ae5527e3daeb50eeea9e0ecee858c84e7e17d)
Diffstat (limited to 'source4/libcli')
-rw-r--r-- | source4/libcli/raw/clisocket.c | 13 | ||||
-rw-r--r-- | source4/libcli/raw/clitransport.c | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/source4/libcli/raw/clisocket.c b/source4/libcli/raw/clisocket.c index 66555695d3..0edb95e1a1 100644 --- a/source4/libcli/raw/clisocket.c +++ b/source4/libcli/raw/clisocket.c @@ -35,6 +35,17 @@ struct clisocket_connect { const char *dest_host; }; + +static int smbcli_sock_destructor(void *ptr) +{ + struct smbcli_socket *sock = talloc_get_type(ptr, struct smbcli_socket); + + if (sock->event.fde && sock->event.ctx) { + event_remove_fd(sock->event.ctx, sock->event.fde); + } + return 0; +} + /* create a smbcli_socket context */ @@ -53,6 +64,8 @@ struct smbcli_socket *smbcli_sock_init(TALLOC_CTX *mem_ctx) return NULL; } + talloc_set_destructor(sock, smbcli_sock_destructor); + return sock; } diff --git a/source4/libcli/raw/clitransport.c b/source4/libcli/raw/clitransport.c index 55a7e25f72..eb9d2dde78 100644 --- a/source4/libcli/raw/clitransport.c +++ b/source4/libcli/raw/clitransport.c @@ -54,7 +54,6 @@ static int transport_destructor(void *ptr) struct smbcli_transport *transport = ptr; smbcli_transport_dead(transport); - event_remove_fd(transport->socket->event.ctx, transport->socket->event.fde); event_remove_timed(transport->socket->event.ctx, transport->socket->event.te); return 0; } |