summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/referral.c
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2009-07-06 12:11:01 -0600
committerRich Megginson <rmeggins@redhat.com>2009-07-07 08:32:42 -0600
commit209521323f731daad54682fd98715f7b22c88c78 (patch)
tree74a1fa8df06641fe543c8518e4db4357ab610828 /ldap/servers/slapd/referral.c
parent3116dbec570b65d2d0a1df5bd000f6e63439e8ee (diff)
downloadds-209521323f731daad54682fd98715f7b22c88c78.tar.gz
ds-209521323f731daad54682fd98715f7b22c88c78.tar.xz
ds-209521323f731daad54682fd98715f7b22c88c78.zip
OpenLDAP supportcleanup
These changes allow the server to be built with OpenLDAP (2.4.17+). A brief summary of the changes: * #defines not provided by OpenLDAP were copied into slapi-plugin.h and protected with #ifndef blocks * where it made sense, I created slapi wrapper functions for things like URL and LDIF processing to abstract way the differences in the APIs * I created a new file utf8.c which contains the UTF8 functions from MozLDAP - this is only compiled when using OpenLDAP * I tried to clean up the code - use the _ext versions of LDAP functions everywhere since the older versions should be considered deprecated * I removed some unused code NOTE that this should still be considered a work in progress since it depends on functionality not yet present in a released version of OpenLDAP, for NSS crypto and for the LDIF public API.
Diffstat (limited to 'ldap/servers/slapd/referral.c')
-rw-r--r--ldap/servers/slapd/referral.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/ldap/servers/slapd/referral.c b/ldap/servers/slapd/referral.c
index 81adccd4..458da813 100644
--- a/ldap/servers/slapd/referral.c
+++ b/ldap/servers/slapd/referral.c
@@ -315,6 +315,7 @@ adjust_referral_basedn( char **urlp, const Slapi_DN *refsdn,
LDAPURLDesc *ludp = NULL;
char *p, *refdn_norm;
int rc = 0;
+ int secure = 0;
PR_ASSERT( urlp != NULL );
PR_ASSERT( *urlp != NULL );
@@ -326,22 +327,16 @@ adjust_referral_basedn( char **urlp, const Slapi_DN *refsdn,
return;
}
- rc = ldap_url_parse( *urlp, &ludp );
-
- if ((rc != 0) &&
- (rc != LDAP_URL_ERR_NODN))
- /*
- * rc != LDAP_URL_ERR_NODN is to circumvent a pb in the C-SDK
- * in ldap_url_parse. The function will return an error if the
- * URL contains no DN (though it is a valid URL according to
- * RFC 2255.
- */
+ rc = slapi_ldap_url_parse( *urlp, &ludp, 0, &secure );
+
+ if (rc != 0)
{
/* Nothing to do, just return */
+ /* log bogus url? */
return;
}
- if (ludp && (ludp->lud_dn != NULL)) {
+ if (ludp && (ludp->lud_dn != NULL) && (ludp->lud_dn[0])) {
refdn_norm = slapi_dn_normalize( slapi_ch_strdup( ludp->lud_dn ));