diff options
author | Volker Lendecke <vlendec@samba.org> | 2004-11-05 22:53:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:53:09 -0500 |
commit | 3298f6105e6a88c9390cac02245c8f2eee1e5046 (patch) | |
tree | 1d573fac54730df66bf32a3cf58d918806d38c18 /source/lib/smbldap.c | |
parent | 40cad9dcc14ddec0ce74bb9010d13bd82e4d10af (diff) | |
download | samba-3298f6105e6a88c9390cac02245c8f2eee1e5046.tar.gz samba-3298f6105e6a88c9390cac02245c8f2eee1e5046.tar.xz samba-3298f6105e6a88c9390cac02245c8f2eee1e5046.zip |
r3563: During a typical logon a modern workstation makes a lot of anonymous session
setups on its way to open a pipe. This gets rid of many round-trips to the
LDAP server during logon by setting up the server_info_guest once and not
asking the LDAP server and nss every time. Make sure that the ldap connection
is reopened in the child. (I did not look at the sql backends.)
Volker
Diffstat (limited to 'source/lib/smbldap.c')
-rw-r--r-- | source/lib/smbldap.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/lib/smbldap.c b/source/lib/smbldap.c index 624ce22d22b..a1f42d92ee0 100644 --- a/source/lib/smbldap.c +++ b/source/lib/smbldap.c @@ -907,6 +907,7 @@ static int smbldap_open(struct smbldap_state *ldap_state) ldap_state->last_ping = time(NULL); + ldap_state->pid = sys_getpid(); DEBUG(4,("The LDAP server is succesfully connected\n")); return LDAP_SUCCESS; @@ -965,6 +966,9 @@ static int another_ldap_try(struct smbldap_state *ldap_state, int *rc, got_alarm = False; old_handler = CatchSignal(SIGALRM, gotalarm_sig); alarm(endtime - now); + + if (ldap_state->pid != sys_getpid()) + smbldap_close(ldap_state); } while (1) { |