]> git.sur5r.net Git - openldap/commitdiff
ITS#5168 also affects back-meta
authorPierangelo Masarati <ando@openldap.org>
Thu, 4 Oct 2007 22:18:34 +0000 (22:18 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 4 Oct 2007 22:18:34 +0000 (22:18 +0000)
servers/slapd/back-meta/map.c

index 1871ebbddf9521c2306f4548c1dd6dfbc023e378..f0985af6e734406e216c087c2cafcfb3231b625c 100644 (file)
@@ -57,6 +57,7 @@
 #include <ac/socket.h>
 
 #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 ) ) {