summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_dual.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-05-04 12:11:04 +0200
committerVolker Lendecke <vlendec@samba.org>2011-05-04 13:32:16 +0200
commitd08414b6799747f224ba02300585c8b15ac6bc0e (patch)
treeb66d86289b3d19093f2a8d55f274643106279eef /source3/winbindd/winbindd_dual.c
parentb8eaec6b666b1f0d3711540c492edd79cd02b1fe (diff)
downloadsamba-d08414b6799747f224ba02300585c8b15ac6bc0e.tar.gz
samba-d08414b6799747f224ba02300585c8b15ac6bc0e.tar.bz2
samba-d08414b6799747f224ba02300585c8b15ac6bc0e.zip
s3: Properly deal with exited winbind children
When a winbind child exits, we need to immediately close the socket. If not, the next request to that child will be sent to a socket without a listener, leading to a failed request. This failed request will then trigger a proper re-init. This patch avoids the one failed request. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed May 4 13:32:16 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/winbindd/winbindd_dual.c')
-rw-r--r--source3/winbindd/winbindd_dual.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index 088353d10f..1078f8d374 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -510,6 +510,11 @@ void winbind_child_died(pid_t pid)
DLIST_REMOVE(winbindd_children, child);
child->pid = 0;
+
+ if (child->sock != -1) {
+ close(child->sock);
+ child->sock = -1;
+ }
}
/* Ensure any negative cache entries with the netbios or realm names are removed. */