/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003 The OpenLDAP Foundation.
+ * Copyright 2003-2007 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
*
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:
*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:
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;
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;
}
}
-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;
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;
}
}
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(
int *objecttype,
int *extensionhandle)
{
-#ifdef LDAP_SLAPI
int rc;
slapi_extension_t type;
struct slapi_registered_extension *re;
ldap_pvt_thread_mutex_lock( ®istered_extensions.mutex );
- rc = mapExtensionType( objectname, &type );
+ rc = map_extension_type( objectname, &type );
if ( rc != 0 ) {
ldap_pvt_thread_mutex_unlock( ®istered_extensions.mutex );
return rc;
ldap_pvt_thread_mutex_unlock( ®istered_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;
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:
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;
*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;
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:
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 );
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;
}
}
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( ®istered_extensions, 0, sizeof( registered_extensions ) );
if ( ldap_pvt_thread_mutex_init( ®istered_extensions.mutex ) != 0 ) {
}
return 0;
-#else
- return -1;
-#endif
}
+
+#endif /* LDAP_SLAPI */