int fr_ldap_server_config_check(fr_ldap_config_t *handle_config, char const *server, CONF_SECTION *cs);
+void *fr_ldap_url_err_to_str(int ldap_url_err)
+
/*
* referral.c - Handle LDAP referrals
*/
(int)len, server, port);
return 0;
}
+
+/** Translate the error code emitted from ldap_url_parse and friends into something accessible with fr_strerror()
+ *
+ * @param[in] ldap_url_err The error code returned
+ */
+void *fr_ldap_url_err_to_str(int ldap_url_err)
+{
+ switch (ldap_url_err) {
+ case LDAP_URL_SUCCESS:
+ return "success";
+
+ case LDAP_URL_ERR_MEM:
+ return "no memory";
+
+ case LDAP_URL_ERR_PARAM:
+ return "parameter is bad";
+
+ case LDAP_URL_ERR_BADSCHEME:
+ return "URL doesn't begin with \"[c]ldap[si]://\"";
+
+ case LDAP_URL_ERR_BADENCLOSURE:
+ return "URL is missing trailing \">\"";
+
+ case LDAP_URL_ERR_BADURL:
+ return "URL is bad";
+
+ case LDAP_URL_ERR_BADHOST:
+ return "host/port is bad";
+
+ case LDAP_URL_ERR_BADATTRS:
+ return "bad (or missing) attributes";
+
+ case LDAP_URL_ERR_BADSCOPE:
+ return "scope string is invalid (or missing)";
+
+ case LDAP_URL_ERR_BADFILTER:
+ return "bad or missing filter";
+
+ case LDAP_URL_ERR_BADEXTS:
+ return "bad or missing extensions";
+
+ default:
+ return "unknown reason";
+ }
+}
fr_ldap_query_t *query = NULL;
LDAPURLDesc *ldap_url;
+ int ldap_url_ret;
XLAT_ARGS(in, &uri_components);
return XLAT_ACTION_FAIL;
}
- if (ldap_url_parse(uri->vb_strvalue, &ldap_url)){
- REDEBUG("Parsing LDAP URL failed");
+ ldap_url_ret = ldap_url_parse(uri->vb_strvalue, &ldap_url);
+ if (ldap_url_ret != LDAP_URL_SUCCESS){
+ RPEDEBUG("Parsing LDAP URL failed - %s", fr_ldap_url_err_to_str(ldap_url_ret));
error:
ldap_free_urldesc(ldap_url);
talloc_free(query);
fr_ldap_thread_t *thread = talloc_get_type_abort(module_rlm_thread_by_data(inst)->data, fr_ldap_thread_t);
LDAPURLDesc *ldap_url;
+ int ldap_url_ret;
char const *url_str;
fr_ldap_thread_trunk_t *ttrunk;
talloc_set_destructor(map_ctx, map_ctx_free);
map_ctx->maps = maps;
- if (ldap_url_parse(url_str, &map_ctx->ldap_url)){
- REDEBUG("Parsing LDAP URL failed");
+ ldap_url_ret = ldap_url_parse(url_str, &map_ctx->ldap_url);
+ if (ldap_url_ret != LDAP_URL_SUCCESS){
+ RPEDEBUG("Parsing LDAP URL failed - %s", fr_ldap_url_err_to_str(ldap_url_ret));
fail:
talloc_free(map_ctx);
RETURN_MODULE_FAIL;