]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapi/slapi_ext.c
Merge remote branch 'origin/mdb.master'
[openldap] / servers / slapd / slapi / slapi_ext.c
index 749ec3029fc489f738b0e4d924fbcac323a358c3..679a3d234c4ce8fe6285f70bd4f58299835916d0 100644 (file)
@@ -1,7 +1,7 @@
-/* $OpenLDAP$/
+/* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2003 The OpenLDAP Foundation.
+ * Copyright 2003-2011 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <ac/stdarg.h>
 #include <ac/ctype.h>
 #include <ac/unistd.h>
-#include <ldap_pvt.h>
+
+#ifdef LDAP_SLAPI
 
 #include <slap.h>
 #include <slapi.h>
 
-#ifdef LDAP_SLAPI
 /*
  * Object extensions
  *
@@ -58,7 +58,7 @@ struct slapi_extension_block {
        void **extensions;
 };
 
-static int getExtensionBlock(int objecttype, void *object, struct slapi_extension_block **eblock, void **parent)
+static int get_extension_block(int objecttype, void *object, struct slapi_extension_block **eblock, void **parent)
 {
        switch ((slapi_extension_t) objecttype) {
        case SLAPI_X_EXT_CONNECTION:
@@ -66,7 +66,7 @@ static int getExtensionBlock(int objecttype, void *object, struct slapi_extensio
                *parent = NULL;
                break;  
        case SLAPI_X_EXT_OPERATION:
-               *eblock = ((Operation *)object)->o_extensions;
+               *eblock = ((Operation *)object)->o_hdr->oh_extensions;
                *parent = ((Operation *)object)->o_conn;
                break;  
        default:
@@ -81,7 +81,7 @@ static int getExtensionBlock(int objecttype, void *object, struct slapi_extensio
        return 0;
 }
 
-static int mapExtensionType(const char *objectname, slapi_extension_t *type)
+static int map_extension_type(const char *objectname, slapi_extension_t *type)
 {
        if ( strcasecmp( objectname, SLAPI_EXT_CONNECTION ) == 0 ) {
                *type = SLAPI_X_EXT_CONNECTION;
@@ -94,7 +94,9 @@ static int mapExtensionType(const char *objectname, slapi_extension_t *type)
        return 0;
 }
 
-static void newExtension(struct slapi_extension_block *eblock, int objecttype, void *object, void *parent, int extensionhandle )
+static void new_extension(struct slapi_extension_block *eblock,
+       int objecttype, void *object, void *parent,
+       int extensionhandle )
 {
        slapi_extension_constructor_fnptr constructor;
 
@@ -113,7 +115,7 @@ static void newExtension(struct slapi_extension_block *eblock, int objecttype, v
        }
 }
 
-static void freeExtension(struct slapi_extension_block *eblock, int objecttype, void *object, void *parent, int extensionhandle )
+static void free_extension(struct slapi_extension_block *eblock, int objecttype, void *object, void *parent, int extensionhandle )
 {
        slapi_extension_destructor_fnptr destructor;
 
@@ -129,15 +131,13 @@ static void freeExtension(struct slapi_extension_block *eblock, int objecttype,
                eblock->extensions[extensionhandle] = NULL;
        }
 }
-#endif /* LDAP_SLAPI */
 
 void *slapi_get_object_extension(int objecttype, void *object, int extensionhandle)
 {
-#ifdef LDAP_SLAPI
        struct slapi_extension_block *eblock;
        void *parent;
 
-       if ( getExtensionBlock( objecttype, object, &eblock, &parent ) != 0 ) {
+       if ( get_extension_block( objecttype, object, &eblock, &parent ) != 0 ) {
                return NULL;
        }
 
@@ -146,29 +146,24 @@ void *slapi_get_object_extension(int objecttype, void *object, int extensionhand
        }
 
        return NULL;
-#else
-       return NULL;
-#endif /* LDAP_SLAPI */
 }
 
 void slapi_set_object_extension(int objecttype, void *object, int extensionhandle, void *extension)
 {
-#ifdef LDAP_SLAPI
        struct slapi_extension_block *eblock;
        void *parent;
 
-       if ( getExtensionBlock( objecttype, object, &eblock, &parent ) != 0 ) {
+       if ( get_extension_block( objecttype, object, &eblock, &parent ) != 0 ) {
                return;
        }
 
        if ( extensionhandle < registered_extensions.extensions[objecttype].count ) {
                /* free the old one */
-               freeExtension( eblock, objecttype, object, parent, extensionhandle );
+               free_extension( eblock, objecttype, object, parent, extensionhandle );
 
                /* constructed by caller */
                eblock->extensions[extensionhandle] = extension;
        }
-#endif /* LDAP_SLAPI */
 }
 
 int slapi_register_object_extension(
@@ -179,14 +174,13 @@ int slapi_register_object_extension(
        int *objecttype,
        int *extensionhandle)
 {
-#ifdef LDAP_SLAPI
        int rc;
        slapi_extension_t type;
        struct slapi_registered_extension *re;
 
        ldap_pvt_thread_mutex_lock( &registered_extensions.mutex );
 
-       rc = mapExtensionType( objectname, &type );
+       rc = map_extension_type( objectname, &type );
        if ( rc != 0 ) {
                ldap_pvt_thread_mutex_unlock( &registered_extensions.mutex );
                return rc;
@@ -227,15 +221,11 @@ int slapi_register_object_extension(
        ldap_pvt_thread_mutex_unlock( &registered_extensions.mutex );
 
        return 0;
-#else
-       return -1;
-#endif /* LDAP_SLAPI */
 }
 
-int slapi_x_create_object_extensions(int objecttype, void *object)
+int slapi_int_create_object_extensions(int objecttype, void *object)
 {
-#ifdef LDAP_SLAPI
-       int i, rc;
+       int i;
        struct slapi_extension_block *eblock;
        void **peblock;
        void *parent;
@@ -246,7 +236,7 @@ int slapi_x_create_object_extensions(int objecttype, void *object)
                parent = NULL;
                break;  
        case SLAPI_X_EXT_OPERATION:
-               peblock = &(((Operation *)object)->o_extensions);
+               peblock = &(((Operation *)object)->o_hdr->oh_extensions);
                parent = ((Operation *)object)->o_conn;
                break;
        default:
@@ -271,7 +261,7 @@ int slapi_x_create_object_extensions(int objecttype, void *object)
        if ( registered_extensions.extensions[objecttype].count ) {
                eblock->extensions = (void **)slapi_ch_calloc( registered_extensions.extensions[objecttype].count, sizeof(void *) );
                for ( i = 0; i < registered_extensions.extensions[objecttype].count; i++ ) {
-                       newExtension( eblock, objecttype, object, parent, i );
+                       new_extension( eblock, objecttype, object, parent, i );
                }
        } else {
                eblock->extensions = NULL;
@@ -280,15 +270,11 @@ int slapi_x_create_object_extensions(int objecttype, void *object)
        *peblock = eblock;
 
        return 0;
-#else
-       return -1;
-#endif
 }
 
-int slapi_x_free_object_extensions(int objecttype, void *object)
+int slapi_int_free_object_extensions(int objecttype, void *object)
 {
-#ifdef LDAP_SLAPI
-       int i, rc;
+       int i;
        struct slapi_extension_block *eblock;
        void **peblock;
        void *parent;
@@ -299,7 +285,7 @@ int slapi_x_free_object_extensions(int objecttype, void *object)
                parent = NULL;
                break;  
        case SLAPI_X_EXT_OPERATION:
-               peblock = &(((Operation *)object)->o_extensions);
+               peblock = &(((Operation *)object)->o_hdr->oh_extensions);
                parent = ((Operation *)object)->o_conn;
                break;  
        default:
@@ -311,7 +297,7 @@ int slapi_x_free_object_extensions(int objecttype, void *object)
 
        if ( eblock->extensions != NULL ) {
                for ( i = registered_extensions.extensions[objecttype].count - 1; i >= 0; --i ) {
-                       freeExtension( eblock, objecttype, object, parent, i );
+                       free_extension( eblock, objecttype, object, parent, i );
                }
 
                slapi_ch_free( (void **)&eblock->extensions );
@@ -320,20 +306,16 @@ int slapi_x_free_object_extensions(int objecttype, void *object)
        slapi_ch_free( peblock );
 
        return 0;
-#else
-       return -1;
-#endif
 }
 
 /* for reusable object types */
-int slapi_x_clear_object_extensions(int objecttype, void *object)
+int slapi_int_clear_object_extensions(int objecttype, void *object)
 {
-#ifdef LDAP_SLAPI
-       int i, rc;
+       int i;
        struct slapi_extension_block *eblock;
        void *parent;
 
-       if ( getExtensionBlock( objecttype, object, &eblock, &parent ) != 0 ) {
+       if ( get_extension_block( objecttype, object, &eblock, &parent ) != 0 ) {
                return -1;
        }
 
@@ -343,22 +325,18 @@ int slapi_x_clear_object_extensions(int objecttype, void *object)
        }
 
        for ( i = registered_extensions.extensions[objecttype].count - 1; i >= 0; --i ) {
-               freeExtension( eblock, objecttype, object, parent, i );
+               free_extension( eblock, objecttype, object, parent, i );
        }
 
        for ( i = 0; i < registered_extensions.extensions[objecttype].count; i++ ) {
-               newExtension( eblock, objecttype, object, parent, i );
+               new_extension( eblock, objecttype, object, parent, i );
        }
 
        return 0;
-#else
-       return -1;
-#endif
 }
 
-int slapi_x_init_object_extensions(void)
+int slapi_int_init_object_extensions(void)
 {
-#ifdef LDAP_SLAPI
        memset( &registered_extensions, 0, sizeof( registered_extensions ) );
 
        if ( ldap_pvt_thread_mutex_init( &registered_extensions.mutex ) != 0 ) {
@@ -366,7 +344,6 @@ int slapi_x_init_object_extensions(void)
        }
 
        return 0;
-#else
-       return -1;
-#endif
 }
+
+#endif /* LDAP_SLAPI */