r21240: Fix longstanding Bug #4009.
commit7e1a84b7226fb8dcd5d34c64a3478a6d886a9a91
authorGünther Deschner <gd@samba.org>
Thu, 8 Feb 2007 17:02:39 +0000 (8 17:02 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:17:50 +0000 (10 12:17 -0500)
tree889d4bf55b8b13de330867db8c93f1e4e7bb8427
parente7e44554bf7c61020e2c5c652e3f8f37a296d3aa
r21240: Fix longstanding Bug #4009.

For the winbind cached ADS LDAP connection handling
(ads_cached_connection()) we were (incorrectly) assuming that the
service ticket lifetime equaled the tgt lifetime. For setups where the
service ticket just lives 10 minutes, we were leaving hundreds of LDAP
connections in CLOSE_WAIT state, until we fail to service entirely with
"Too many open files".

Also sequence_number() in winbindd_ads.c needs to delete the cached LDAP
connection after the ads_do_search_retry() has failed to submit the
search request (although the bind succeeded (returning an expired
service ticket that we cannot delete from the memory cred cache - this
will get fixed later)).

Guenther
13 files changed:
source/include/ads.h
source/include/includes.h
source/libads/kerberos.c
source/libads/ldap_utils.c
source/libads/sasl.c
source/libsmb/cliconnect.c
source/libsmb/clikrb5.c
source/libsmb/clispnego.c
source/nsswitch/idmap_ad.c
source/nsswitch/winbindd_ads.c
source/nsswitch/winbindd_pam.c
source/rpc_client/cli_pipe.c
source/utils/ntlm_auth.c