return( ( strcasecmp(map1->src.bv_val, map2->src.bv_val) == 0 ) ? -1 : 0 );
}
+void
+ldap_back_map_init ( struct ldapmap *lm, struct ldapmapping **m )
+{
+ struct ldapmapping *mapping;
+
+ assert( m );
+
+ *m = NULL;
+
+ mapping = (struct ldapmapping *)ch_calloc( 2,
+ sizeof( struct ldapmapping ) );
+ if ( mapping == NULL ) {
+ return;
+ }
+
+ ber_str2bv( "objectclass", sizeof("objectclass")-1, 1, &mapping->src);
+ ber_dupbv( &mapping->dst, &mapping->src );
+ mapping[1].src = mapping->src;
+ mapping[1].dst = mapping->dst;
+
+ avl_insert( &lm->map, (caddr_t)mapping,
+ mapping_cmp, mapping_dup );
+ avl_insert( &lm->remap, (caddr_t)&mapping[1],
+ mapping_cmp, mapping_dup );
+ *m = mapping;
+}
+
void
ldap_back_map ( struct ldapmap *map, struct berval *s, struct berval *bv,
int remap )
char **
ldap_back_map_attrs(
struct ldapmap *at_map,
- AttributeName *a,
+ AttributeName *an,
int remap
)
{
int i;
char **na;
- AttributeName *an;
struct berval mapped;
- if (a == NULL)
+ if (an == NULL)
return(NULL);
- for (i = 0, an=a; an; an=an->an_next, i++) {
+ for (i = 0; an[i].an_name.bv_val; i++) {
/* */
}
if (na == NULL)
return(NULL);
- for (i = 0, an=a; an; an=an->an_next) {
- ldap_back_map(at_map, &an->an_name, &mapped, remap);
+ for (i = 0; an[i].an_name.bv_val; i++) {
+ ldap_back_map(at_map, &an[i].an_name, &mapped, remap);
if (mapped.bv_val != NULL) {
na[i] = mapped.bv_val;
i++;