From: Pierangelo Masarati Date: Thu, 4 Oct 2007 22:18:59 +0000 (+0000) Subject: ITS#5168 also affects back-meta X-Git-Tag: OPENLDAP_REL_ENG_2_3_39~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e84d511c0b005f764fe9a7b7b6ab525a7990cef0;p=thirdparty%2Fopenldap.git ITS#5168 also affects back-meta --- diff --git a/servers/slapd/back-meta/map.c b/servers/slapd/back-meta/map.c index 1871ebbddf..f0985af6e7 100644 --- a/servers/slapd/back-meta/map.c +++ b/servers/slapd/back-meta/map.c @@ -57,6 +57,7 @@ #include #include "slap.h" +#include "lutil.h" #include "../back-ldap/back-ldap.h" #include "back-meta.h" @@ -212,6 +213,7 @@ map_attr_value( int remap ) { struct berval vtmp; + char uuid[ LDAP_LUTIL_UUIDSTR_BUFSIZE ]; int freeval = 0; ldap_back_map( &dc->target->mt_rwmap.rwm_at, &ad->ad_cname, mapped_attr, remap ); @@ -258,6 +260,14 @@ map_attr_value( return -1; } + } else if ( ad->ad_type->sat_syntax == slap_schema.si_ad_entryUUID->ad_type->sat_syntax ) { + vtmp.bv_len = lutil_uuidstr_from_normalized( value->bv_val, + value->bv_len, uuid, LDAP_LUTIL_UUIDSTR_BUFSIZE ); + if ( vtmp.bv_len < 0 ) { + return -1; + } + vtmp.bv_val = uuid; + } else if ( ad == slap_schema.si_ad_objectClass || ad == slap_schema.si_ad_structuralObjectClass ) { ldap_back_map( &dc->target->mt_rwmap.rwm_oc, value, &vtmp, remap ); if ( BER_BVISNULL( &vtmp ) || BER_BVISEMPTY( &vtmp ) ) {