]> git.sur5r.net Git - openldap/commitdiff
Add slapi_x_backend_get_flags() API
authorLuke Howard <lukeh@openldap.org>
Fri, 28 Jan 2005 08:33:29 +0000 (08:33 +0000)
committerLuke Howard <lukeh@openldap.org>
Fri, 28 Jan 2005 08:33:29 +0000 (08:33 +0000)
include/slapi-plugin.h
servers/slapd/slapi/proto-slapi.h
servers/slapd/slapi/slapi_utils.c

index f8cc9f2150eaacc926bdda77d3acf5d1f269cf05..dcb3a95a630087ebb3622203f90455132695190d 100644 (file)
@@ -317,6 +317,8 @@ void *slapi_get_object_extension(int objecttype, void *object,
 void slapi_set_object_extension(int objecttype, void *object,
        int extensionhandle, void *extension);
 
+int slapi_x_backend_get_flags( const Slapi_Backend *be, unsigned long *flags );
+
 /* parameters currently supported */
 
 /*
@@ -330,6 +332,20 @@ void slapi_set_object_extension(int objecttype, void *object,
 #define SLAPI_ATTR_FLAG_COLLECTIVE     0x0080
 #define SLAPI_ATTR_FLAG_NOUSERMOD      0x0100
 
+/*
+ * Backend flags returned by slapi_x_backend_get_flags()
+ */
+#define SLAPI_BACKEND_FLAG_NOLASTMOD           0x0001U
+#define SLAPI_BACKEND_FLAG_NO_SCHEMA_CHECK     0x0002U
+#define SLAPI_BACKEND_FLAG_GLUE_INSTANCE       0x0010U /* a glue backend */
+#define SLAPI_BACKEND_FLAG_GLUE_SUBORDINATE    0x0020U /* child of a glue hierarchy */
+#define SLAPI_BACKEND_FLAG_GLUE_LINKED         0x0040U /* child is connected to parent */
+#define SLAPI_BACKEND_FLAG_OVERLAY             0x0080U /* this db struct is an overlay */
+#define SLAPI_BACKEND_FLAG_GLOBAL_OVERLAY      0x0100U /* this db struct is a global overlay */
+#define SLAPI_BACKEND_FLAG_SHADOW              0x8000U /* a shadow */
+#define SLAPI_BACKEND_FLAG_SYNC_SHADOW         0x1000U /* a sync shadow */
+#define SLAPI_BACKEND_FLAG_SLURP_SHADOW                0x2000U /* a slurp shadow */
+
 /*
  * ACL levels
  */
index 1470e345188c4b23eea944eeb41122b222433181..2e7ce1c140c471a9773a04bca1f22b35802d9dc6 100644 (file)
@@ -248,6 +248,8 @@ extern int slapi_x_compute_get_pblock(computed_attr_context *c, Slapi_PBlock **p
 
 extern int slapi_int_access_allowed(Operation *op, Entry *entry, AttributeDescription *desc, struct berval *val, slap_access_t access, AccessControlState *state);
 
+extern int slapi_x_backend_get_flags( const Slapi_Backend *be, unsigned long *flags );
+
 extern ldap_pvt_thread_mutex_t slapi_hn_mutex;
 extern ldap_pvt_thread_mutex_t slapi_time_mutex;
 extern ldap_pvt_thread_mutex_t slapi_printmessage_mutex; 
index 8d469801d29b044f07f5457331997f7c2a4200ea..244ec53701825bf5c76fc650534de223634c6989 100644 (file)
@@ -4267,3 +4267,17 @@ void slapi_ldap_unbind( LDAP *ld )
 #endif /* LDAP_SLAPI */
 }
 
+int slapi_x_backend_get_flags( const Slapi_Backend *be, unsigned long *flags )
+{
+#ifdef LDAP_SLAPI
+       if ( be == NULL )
+               return LDAP_PARAM_ERROR;
+
+       *flags = SLAP_DBFLAGS(be);
+
+       return LDAP_SUCCESS;
+#else
+       return -1;
+#endif /* LDAP_SLAPI */
+}
+