diff options
author | Volker Lendecke <vl@samba.org> | 2010-04-07 17:45:12 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2011-01-21 13:51:27 +0100 |
commit | 9c2fcb689b647be60731ea8ce8abfe22c0e63dde (patch) | |
tree | 3107f4efd36a8c79271dd2367098959876f7f8eb /source3/winbindd/winbindd_domain.c | |
parent | 7a2fa9fc1cf5b26419c9cd915e85030c7f14e764 (diff) | |
download | samba-9c2fcb689b647be60731ea8ce8abfe22c0e63dde.tar.gz samba-9c2fcb689b647be60731ea8ce8abfe22c0e63dde.tar.bz2 samba-9c2fcb689b647be60731ea8ce8abfe22c0e63dde.zip |
s3:winbind: Fork multiple children per domain
This makes us scale better with many simultaneous winbind requests,
some of which might be slow.
This implementation breaks offline logons, as the cached credentials are
maintained in a child (this needs fixing). So, if the offline logons are
active, only allow one DC connection.
Probably the offline logon and the scalable file server cases are
separate enough so that this patch is useful even with the restriction.
Diffstat (limited to 'source3/winbindd/winbindd_domain.c')
-rw-r--r-- | source3/winbindd/winbindd_domain.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/winbindd/winbindd_domain.c b/source3/winbindd/winbindd_domain.c index cd3370852b..e998275c8e 100644 --- a/source3/winbindd/winbindd_domain.c +++ b/source3/winbindd/winbindd_domain.c @@ -69,6 +69,12 @@ static const struct winbindd_child_dispatch_table domain_dispatch_table[] = { void setup_domain_child(struct winbindd_domain *domain) { - setup_child(domain, &domain->child, domain_dispatch_table, - "log.wb", domain->name); + int i; + + for (i=0; i<lp_winbind_max_domain_connections(); i++) { + setup_child(domain, &domain->children[i], + domain_dispatch_table, + "log.wb", domain->name); + domain->children[i].domain = domain; + } } |