pattern = t_str_new(strlen(ctx->cur_map.pattern) + 1);
attributes = array_get_modifiable(&ctx->cur_attributes, &count);
- p_array_init(&ctx->cur_map.ldap_attributes, ctx->pool, count);
+ p_array_init(&ctx->cur_map.parsed_pattern_keys, ctx->pool, count);
for (p = ctx->cur_map.pattern; *p != '\0';) {
if (*p != '$') {
str_append_c(pattern, *p);
/* mark this attribute as used */
attributes[i].variable = NULL;
- array_push_back(&ctx->cur_map.ldap_attributes,
+ array_push_back(&ctx->cur_map.parsed_pattern_keys,
&attributes[i].name);
}
else if (strcasecmp(ctx->cur_map.scope, "subtree") == 0) ctx->cur_map.parsed_scope = 2;
else return "Scope must be one, base or subtree";
}
- if (!array_is_created(&ctx->cur_map.ldap_attributes)) {
+ if (!array_is_created(&ctx->cur_map.parsed_pattern_keys)) {
/* no attributes besides value. allocate the array anyway. */
- p_array_init(&ctx->cur_map.ldap_attributes, ctx->pool, 1);
+ p_array_init(&ctx->cur_map.parsed_pattern_keys, ctx->pool, 1);
if (strchr(ctx->cur_map.pattern, '$') != NULL)
return "Missing attributes for pattern variables";
}
const char *template, *error;
ARRAY(struct var_expand_table) exp;
struct var_expand_table entry;
- i_zero(&entry);
t_array_init(&exp, 8);
if (priv) {
i_assert(set->username != NULL);
+ i_zero(&entry);
entry.value = ldap_escape(set->username);
entry.key = "username";
array_push_back(&exp, &entry);
template = map->filter;
}
- for(size_t i = 0; i < array_count(values) && i < array_count(&map->ldap_attributes); i++) {
+ for(size_t i = 0; i < array_count(values) && i < array_count(&map->parsed_pattern_keys); i++) {
struct var_expand_table entry;
const char *value = array_idx_elem(values, i);
- const char *long_key = array_idx_elem(&map->ldap_attributes, i);
+ const char *long_key = array_idx_elem(&map->parsed_pattern_keys, i);
i_zero(&entry);
-
entry.value = ldap_escape(value);
entry.key = long_key;
array_push_back(&exp, &entry);