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_util.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_util.c')
-rw-r--r-- | source3/winbindd/winbindd_util.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index e27c35fe60..58cec444aa 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -162,6 +162,16 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const ZERO_STRUCTP(domain); + domain->children = SMB_MALLOC_ARRAY( + struct winbindd_child, lp_winbind_max_domain_connections()); + if (domain->children == NULL) { + SAFE_FREE(domain); + return NULL; + } + memset(domain->children, 0, + sizeof(struct winbindd_child) + * lp_winbind_max_domain_connections()); + fstrcpy(domain->name, domain_name); if (alternative_name) { fstrcpy(domain->alt_name, alternative_name); |