diff options
author | Günther Deschner <gd@samba.org> | 2006-05-16 13:26:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:17:04 -0500 |
commit | 22bed618b6aacd2986592c388ae3360f3df02d02 (patch) | |
tree | 0a14e95706cb5b245053d09a819585ed2094c832 /source3 | |
parent | 651797b41e1968291096b94b2a628ec339981ca8 (diff) | |
download | samba-22bed618b6aacd2986592c388ae3360f3df02d02.tar.gz samba-22bed618b6aacd2986592c388ae3360f3df02d02.tar.bz2 samba-22bed618b6aacd2986592c388ae3360f3df02d02.zip |
r15633: Minor smbldap/pdb_ldap cleanup
Guenther
(This used to be commit 1b5a712467ab8f35211b59bb703a42bdc5e0dfc0)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/smbldap.c | 25 | ||||
-rw-r--r-- | source3/passdb/pdb_ldap.c | 11 |
2 files changed, 16 insertions, 20 deletions
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c index e4cb25104b..bca984444d 100644 --- a/source3/lib/smbldap.c +++ b/source3/lib/smbldap.c @@ -981,7 +981,7 @@ static int smbldap_connect_system(struct smbldap_state *ldap_state, LDAP * ldap_ ldap_get_option(ldap_state->ldap_struct, LDAP_OPT_PROTOCOL_VERSION, &version); - if (smbldap_has_control(ldap_state, ADS_PAGE_CTL_OID) && version == 3) { + if (smbldap_has_control(ldap_state->ldap_struct, ADS_PAGE_CTL_OID) && version == 3) { ldap_state->paged_results = True; } @@ -1554,7 +1554,6 @@ NTSTATUS smbldap_init(TALLOC_CTX *mem_ctx, const char *location, struct smbldap_ /******************************************************************* Return a copy of the DN for a LDAPMessage. Convert from utf8 to CH_UNIX. ********************************************************************/ - char *smbldap_get_dn(LDAP *ld, LDAPMessage *entry) { char *utf8_dn, *unix_dn; @@ -1595,7 +1594,7 @@ char *smbldap_get_dn(LDAP *ld, LDAPMessage *entry) Check if root-dse has a certain Control or Extension ********************************************************************/ -static BOOL smbldap_check_root_dse(struct smbldap_state *ldap_state, const char **attrs, const char *value) +static BOOL smbldap_check_root_dse(LDAP *ld, const char **attrs, const char *value) { LDAPMessage *msg = NULL; LDAPMessage *entry = NULL; @@ -1615,7 +1614,7 @@ static BOOL smbldap_check_root_dse(struct smbldap_state *ldap_state, const char return False; } - rc = ldap_search_s(ldap_state->ldap_struct, "", LDAP_SCOPE_BASE, + rc = ldap_search_s(ld, "", LDAP_SCOPE_BASE, "(objectclass=*)", CONST_DISCARD(char **, attrs), 0 , &msg); if (rc != LDAP_SUCCESS) { @@ -1623,21 +1622,21 @@ static BOOL smbldap_check_root_dse(struct smbldap_state *ldap_state, const char return False; } - num_result = ldap_count_entries(ldap_state->ldap_struct, msg); + num_result = ldap_count_entries(ld, msg); if (num_result != 1) { DEBUG(3,("smbldap_check_root_dse: Expected one rootDSE, got %d\n", num_result)); goto done; } - entry = ldap_first_entry(ldap_state->ldap_struct, msg); + entry = ldap_first_entry(ld, msg); if (entry == NULL) { DEBUG(3,("smbldap_check_root_dse: Could not retrieve rootDSE\n")); goto done; } - values = ldap_get_values(ldap_state->ldap_struct, entry, attrs[0]); + values = ldap_get_values(ld, entry, attrs[0]); if (values == NULL) { DEBUG(5,("smbldap_check_root_dse: LDAP Server does not support any %s\n", attrs[0])); @@ -1671,28 +1670,28 @@ static BOOL smbldap_check_root_dse(struct smbldap_state *ldap_state, const char Check if LDAP-Server supports a certain Control (OID in string format) ********************************************************************/ -BOOL smbldap_has_control(struct smbldap_state *ldap_state, const char *control) +BOOL smbldap_has_control(LDAP *ld, const char *control) { const char *attrs[] = { "supportedControl", NULL }; - return smbldap_check_root_dse(ldap_state, attrs, control); + return smbldap_check_root_dse(ld, attrs, control); } /******************************************************************* Check if LDAP-Server supports a certain Extension (OID in string format) ********************************************************************/ -BOOL smbldap_has_extension(struct smbldap_state *ldap_state, const char *extension) +BOOL smbldap_has_extension(LDAP *ld, const char *extension) { const char *attrs[] = { "supportedExtension", NULL }; - return smbldap_check_root_dse(ldap_state, attrs, extension); + return smbldap_check_root_dse(ld, attrs, extension); } /******************************************************************* Check if LDAP-Server holds a given namingContext ********************************************************************/ -BOOL smbldap_has_naming_context(struct smbldap_state *ldap_state, const char *naming_context) +BOOL smbldap_has_naming_context(LDAP *ld, const char *naming_context) { const char *attrs[] = { "namingContexts", NULL }; - return smbldap_check_root_dse(ldap_state, attrs, naming_context); + return smbldap_check_root_dse(ld, attrs, naming_context); } diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index 9386293793..3b1e08e6fe 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -212,7 +212,7 @@ static NTSTATUS ldapsam_get_seq_num(struct pdb_methods *my_methods, time_t *seq_ return ntstatus; } - if (!smbldap_has_naming_context(ldap_state->smbldap_state, lp_ldap_suffix())) { + if (!smbldap_has_naming_context(ldap_state->smbldap_state->ldap_struct, lp_ldap_suffix())) { DEBUG(3,("ldapsam_get_seq_num: DIT not configured to hold %s " "as top-level namingContext\n", lp_ldap_suffix())); return ntstatus; @@ -1505,11 +1505,6 @@ static NTSTATUS ldapsam_getsampwsid(struct pdb_methods *my_methods, struct samu return NT_STATUS_OK; } -static BOOL ldapsam_can_pwchange_exop(struct smbldap_state *ldap_state) -{ - return smbldap_has_extension(ldap_state, LDAP_EXOP_MODIFY_PASSWD); -} - /******************************************************************** Do the actual modification - also change a plaintext passord if it it set. @@ -1572,7 +1567,9 @@ static NTSTATUS ldapsam_modify_entry(struct pdb_methods *my_methods, char *utf8_dn; if (!ldap_state->is_nds_ldap) { - if (!ldapsam_can_pwchange_exop(ldap_state->smbldap_state)) { + + if (!smbldap_has_extension(ldap_state->smbldap_state->ldap_struct, + LDAP_EXOP_MODIFY_PASSWD)) { DEBUG(2, ("ldap password change requested, but LDAP " "server does not support it -- ignoring\n")); return NT_STATUS_OK; |