-/* Add or remove stuff from index files */
-
-static int
-change_value(
- Backend *be,
- struct dbcache *db,
- char *type,
- int indextype,
- char *val,
- ID id,
- int (*idl_func)(Backend *, struct dbcache *, Datum, ID)
-)
-{
- int rc;
- Datum key;
- char *tmpval = NULL;
- char *realval = val;
- char buf[BUFSIZ];
-
- char prefix = index2prefix( indextype );
-
- ldbm_datum_init( key );
-
- Debug( LDAP_DEBUG_TRACE,
- "=> change_value( \"%c%s\", op=%s )\n",
- prefix, val, (idl_func == idl_insert_key ? "ADD":"DELETE") );
-
- if ( prefix != UNKNOWN_PREFIX ) {
- unsigned int len = strlen( val );
-
- if ( (len + 2) < sizeof(buf) ) {
- realval = buf;
- } else {
- /* value + prefix + null */
- tmpval = (char *) ch_malloc( len + 2 );
- realval = tmpval;
- }
- realval[0] = prefix;
- strcpy( &realval[1], val );
- }