+ vals[0].bv_val = "subentry";
+ vals[0].bv_len = sizeof("subentry")-1;
+#ifdef SLAP_NVALUES
+ if( attr_merge_one( e, ad_structuralObjectClass, vals, vals ) )
+#else
+ if( attr_merge_one( e, ad_structuralObjectClass, vals ) )
+#endif
+ {
+ /* Out of memory, do something about it */
+ entry_free( e );
+ *text = "out of memory";
+ return LDAP_OTHER;
+ }
+
+ vals[0].bv_val = "top";
+ vals[0].bv_len = sizeof("top")-1;
+ vals[1].bv_val = "subentry";
+ vals[1].bv_len = sizeof("subentry")-1;
+ vals[2].bv_val = "subschema";
+ vals[2].bv_len = sizeof("subschema")-1;
+ vals[3].bv_val = "extensibleObject";
+ vals[3].bv_len = sizeof("extensibleObject")-1;
+ vals[4].bv_val = NULL;
+#ifdef SLAP_NVALUES
+ if( attr_merge( e, ad_objectClass, vals, vals ) )
+#else
+ if( attr_merge( e, ad_objectClass, vals ) )
+#endif
+ {
+ /* Out of memory, do something about it */
+ entry_free( e );
+ *text = "out of memory";
+ return LDAP_OTHER;