int mu_ldap_module_init (enum mu_gocs_op op, void *data) { struct mu_ldap_module_config *cfg = data; if (op != mu_gocs_op_set) return 0; if (cfg) ldap_param = *cfg; if (ldap_param.enable) { if (!ldap_param.getpwnam_filter) ldap_param.getpwnam_filter = "(&(objectClass=posixAccount) (uid=%u))"; if (!ldap_param.getpwuid_filter) ldap_param.getpwuid_filter = "&(objectClass=posixAccount) (uidNumber=%u))"; if (!ldap_param.field_map) { int d; mutil_parse_field_map (default_field_map, &ldap_param.field_map, &d); } } return 0; }
static int _cb2_field_map (mu_debug_t debug, const char *arg, void *data) { int err; int rc = mutil_parse_field_map (arg, &ldap_settings.field_map, &err); if (rc) /* FIXME: this message may be misleading */ mu_cfg_format_error (debug, MU_DEBUG_ERROR, _("error near element %d: %s"), err, mu_strerror (rc)); return 0; }