diff --git a/clients/tools/common.c b/clients/tools/common.c index 0f0c6ab940ea577a3e78a21bb04524def21a3ac9..5617d49c1e53a9bd09fc324e8c686a2f7dffe635 100644 --- a/clients/tools/common.c +++ b/clients/tools/common.c @@ -709,8 +709,8 @@ tool_conn_setup( int not, void (*private_setup)( LDAP * ) ) rc = ldap_initialize( &ld, ldapuri ); if( rc != LDAP_SUCCESS ) { fprintf( stderr, - "Could not create LDAP session handle (%d): %s\n", - rc, ldap_err2string(rc) ); + "Could not create LDAP session handle for URI=%s %d): %s\n", + ldapuri, rc, ldap_err2string(rc) ); exit( EXIT_FAILURE ); } diff --git a/libraries/libldap/options.c b/libraries/libldap/options.c index c8b2ac286a1b8bcd8a084588219ecb966cab801f..f191cb8161c4d3b34e58e5f104aee74ae392cf27 100644 --- a/libraries/libldap/options.c +++ b/libraries/libldap/options.c @@ -529,7 +529,6 @@ ldap_set_option( if(urls != NULL) { rc = ldap_url_parselist(&ludlist, urls); - } else if(ld == NULL) { /* * must want global default returned @@ -548,6 +547,28 @@ ldap_set_option( rc = LDAP_NO_MEMORY; } + switch (rc) { + case LDAP_URL_SUCCESS: /* Success */ + rc = LDAP_SUCCESS; + break; + + case LDAP_URL_ERR_MEM: /* can't allocate memory space */ + rc = LDAP_NO_MEMORY; + break; + + case LDAP_URL_ERR_PARAM: /* parameter is bad */ + case LDAP_URL_ERR_BADSCHEME: /* URL doesn't begin with "ldap[si]://" */ + case LDAP_URL_ERR_BADENCLOSURE: /* URL is missing trailing ">" */ + case LDAP_URL_ERR_BADURL: /* URL is bad */ + case LDAP_URL_ERR_BADHOST: /* host port is bad */ + case LDAP_URL_ERR_BADATTRS: /* bad (or missing) attributes */ + case LDAP_URL_ERR_BADSCOPE: /* scope string is invalid (or missing) */ + case LDAP_URL_ERR_BADFILTER: /* bad or missing filter */ + case LDAP_URL_ERR_BADEXTS: /* bad or missing extensions */ + rc = LDAP_PARAM_ERROR; + break; + } + if (rc == LDAP_OPT_SUCCESS) { if (lo->ldo_defludp != NULL) ldap_free_urllist(lo->ldo_defludp);