Author: gd Date: 2006-05-16 13:26:49 +0000 (Tue, 16 May 2006) New Revision: 15633
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15633 Log: Minor smbldap/pdb_ldap cleanup Guenther Modified: branches/SAMBA_3_0/source/lib/smbldap.c branches/SAMBA_3_0/source/passdb/pdb_ldap.c trunk/source/lib/smbldap.c trunk/source/passdb/pdb_ldap.c Changeset: Modified: branches/SAMBA_3_0/source/lib/smbldap.c =================================================================== --- branches/SAMBA_3_0/source/lib/smbldap.c 2006-05-16 11:23:29 UTC (rev 15632) +++ branches/SAMBA_3_0/source/lib/smbldap.c 2006-05-16 13:26:49 UTC (rev 15633) @@ -981,7 +981,7 @@ 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 @@ /******************************************************************* 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 @@ 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 @@ 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 @@ 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 @@ 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); } Modified: branches/SAMBA_3_0/source/passdb/pdb_ldap.c =================================================================== --- branches/SAMBA_3_0/source/passdb/pdb_ldap.c 2006-05-16 11:23:29 UTC (rev 15632) +++ branches/SAMBA_3_0/source/passdb/pdb_ldap.c 2006-05-16 13:26:49 UTC (rev 15633) @@ -212,7 +212,7 @@ 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 @@ 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 @@ 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; Modified: trunk/source/lib/smbldap.c =================================================================== --- trunk/source/lib/smbldap.c 2006-05-16 11:23:29 UTC (rev 15632) +++ trunk/source/lib/smbldap.c 2006-05-16 13:26:49 UTC (rev 15633) @@ -981,7 +981,7 @@ 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 @@ /******************************************************************* 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 @@ 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 @@ 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 @@ 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 @@ 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); } Modified: trunk/source/passdb/pdb_ldap.c =================================================================== --- trunk/source/passdb/pdb_ldap.c 2006-05-16 11:23:29 UTC (rev 15632) +++ trunk/source/passdb/pdb_ldap.c 2006-05-16 13:26:49 UTC (rev 15633) @@ -212,7 +212,7 @@ 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 @@ 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 @@ 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;
