]> git.sur5r.net Git - openldap/commitdiff
fix ITS#5168 (a better fix would probably be a generic handler to de-normalize values)
authorPierangelo Masarati <ando@openldap.org>
Thu, 4 Oct 2007 21:53:49 +0000 (21:53 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 4 Oct 2007 21:53:49 +0000 (21:53 +0000)
servers/slapd/overlays/rwmmap.c

index f18d80d2716ee404bd653a8cb0967f81c2c2add3..c5c9142090add4b970eaccd8922dad65dfddcc0b 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "slap.h"
 #include "rwm.h"
+#include "lutil.h"
 
 #undef ldap_debug      /* silence a warning in ldap-int.h */
 #include "../../../libraries/libldap/ldap-int.h"
@@ -379,6 +380,7 @@ map_attr_value(
 {
        struct berval           vtmp = BER_BVNULL;
        int                     freeval = 0;
+       char                    uuid[ LDAP_LUTIL_UUIDSTR_BUFSIZE ];
        AttributeDescription    *ad = *adp;
        struct ldapmapping      *mapping = NULL;
 
@@ -420,6 +422,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 )
                {