X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslapi%2Fslapi_ext.c;h=90b9db447bbb014ff6c112547f3b21bcf60c5553;hb=487d3966eea565e8768b5b7b06f1dca7181d467e;hp=27f4dfbe1c315a8e31346bcc45bbb83e160c81df;hpb=35dc15ad6649d47749455d46e2bf186f035da62e;p=openldap
diff --git a/servers/slapd/slapi/slapi_ext.c b/servers/slapd/slapi/slapi_ext.c
index 27f4dfbe1c..90b9db447b 100644
--- a/servers/slapd/slapi/slapi_ext.c
+++ b/servers/slapd/slapi/slapi_ext.c
@@ -1,12 +1,26 @@
-/*
- * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
- */
-/*
- * Portions Copyright IBM Corp. 1997,2002-2003
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software .
+ *
+ * Copyright 2003-2012 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
- * Public License, version 2.7 or later.
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * .
+ */
+/* (C) Copyright PADL Software Pty Ltd. 2003
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that this notice is preserved
+ * and that due credit is given to PADL Software Pty Ltd. This software
+ * is provided ``as is'' without express or implied warranty.
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by Luke Howard for inclusion
+ * in OpenLDAP Software.
*/
#include "portable.h"
@@ -15,12 +29,12 @@
#include
#include
#include
-#include
+
+#ifdef LDAP_SLAPI
#include
#include
-#ifdef LDAP_SLAPI
/*
* Object extensions
*
@@ -44,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:
@@ -52,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:
@@ -67,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;
@@ -80,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;
@@ -99,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;
@@ -115,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;
}
@@ -132,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(
@@ -165,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( ®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;
@@ -213,15 +221,11 @@ int slapi_register_object_extension(
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;
@@ -232,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:
@@ -257,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;
@@ -266,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;
@@ -285,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:
@@ -297,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 );
@@ -306,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;
}
@@ -329,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( ®istered_extensions, 0, sizeof( registered_extensions ) );
if ( ldap_pvt_thread_mutex_init( ®istered_extensions.mutex ) != 0 ) {
@@ -352,7 +344,6 @@ int slapi_x_init_object_extensions(void)
}
return 0;
-#else
- return -1;
-#endif
}
+
+#endif /* LDAP_SLAPI */