forked from jengelh/openldap2
208 lines
6.2 KiB
Plaintext
208 lines
6.2 KiB
Plaintext
Index: servers/slapd/back-bdb/attr.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/attr.c,v
|
|
retrieving revision 1.39
|
|
diff -u -r1.39 attr.c
|
|
--- servers/slapd/back-bdb/attr.c 26 May 2008 15:38:32 -0000 1.39
|
|
+++ servers/slapd/back-bdb/attr.c 23 Sep 2008 13:09:29 -0000
|
|
@@ -23,6 +23,7 @@
|
|
|
|
#include "slap.h"
|
|
#include "back-bdb.h"
|
|
+#include "config.h"
|
|
#include "lutil.h"
|
|
|
|
/* Find the ad, return -1 if not found,
|
|
@@ -92,7 +93,8 @@
|
|
const char *fname,
|
|
int lineno,
|
|
int argc,
|
|
- char **argv )
|
|
+ char **argv,
|
|
+ struct config_reply_s *c_reply)
|
|
{
|
|
int rc = 0;
|
|
int i;
|
|
@@ -132,9 +134,14 @@
|
|
rc = slap_str2index( indexes[i], &index );
|
|
|
|
if( rc != LDAP_SUCCESS ) {
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "index type \"%s\" undefined\n",
|
|
- fname, lineno, indexes[i] );
|
|
+ if ( c_reply )
|
|
+ {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "index type \"%s\" undefined", indexes[i] );
|
|
+
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_PARAM_ERROR;
|
|
goto done;
|
|
}
|
|
@@ -144,9 +151,13 @@
|
|
}
|
|
|
|
if( !mask ) {
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "no indexes selected\n",
|
|
- fname, lineno );
|
|
+ if ( c_reply )
|
|
+ {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "no indexes selected" );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_PARAM_ERROR;
|
|
goto done;
|
|
}
|
|
@@ -169,9 +180,14 @@
|
|
if ( is_component_reference( attrs[i] ) ) {
|
|
rc = extract_component_reference( attrs[i], &cr );
|
|
if ( rc != LDAP_SUCCESS ) {
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "index component reference\"%s\" undefined\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if ( c_reply )
|
|
+ {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "index component reference\"%s\" undefined",
|
|
+ attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
goto done;
|
|
}
|
|
cr->cr_indexmask = mask;
|
|
@@ -187,16 +203,25 @@
|
|
rc = slap_str2ad( attrs[i], &ad, &text );
|
|
|
|
if( rc != LDAP_SUCCESS ) {
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "index attribute \"%s\" undefined\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if ( c_reply )
|
|
+ {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "index attribute \"%s\" undefined",
|
|
+ attrs[i] );
|
|
+
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
goto done;
|
|
}
|
|
|
|
if( slap_ad_is_binary( ad ) ) {
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "index of attribute \"%s\" disallowed\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if (c_reply) {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "index of attribute \"%s\" disallowed", attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_UNWILLING_TO_PERFORM;
|
|
goto done;
|
|
}
|
|
@@ -206,9 +231,12 @@
|
|
&& ad->ad_type->sat_approx->smr_indexer
|
|
&& ad->ad_type->sat_approx->smr_filter ) )
|
|
{
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "approx index of attribute \"%s\" disallowed\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if (c_reply) {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "approx index of attribute \"%s\" disallowed", attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_INAPPROPRIATE_MATCHING;
|
|
goto done;
|
|
}
|
|
@@ -218,9 +246,12 @@
|
|
&& ad->ad_type->sat_equality->smr_indexer
|
|
&& ad->ad_type->sat_equality->smr_filter ) )
|
|
{
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "equality index of attribute \"%s\" disallowed\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if (c_reply) {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "equality index of attribute \"%s\" disallowed", attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_INAPPROPRIATE_MATCHING;
|
|
goto done;
|
|
}
|
|
@@ -230,9 +261,12 @@
|
|
&& ad->ad_type->sat_substr->smr_indexer
|
|
&& ad->ad_type->sat_substr->smr_filter ) )
|
|
{
|
|
- fprintf( stderr, "%s: line %d: "
|
|
- "substr index of attribute \"%s\" disallowed\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if (c_reply) {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "substr index of attribute \"%s\" disallowed", attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
rc = LDAP_INAPPROPRIATE_MATCHING;
|
|
goto done;
|
|
}
|
|
@@ -295,9 +329,13 @@
|
|
rc = 0;
|
|
continue;
|
|
}
|
|
- fprintf( stderr,
|
|
- "%s: line %d: duplicate index definition for attr \"%s\".\n",
|
|
- fname, lineno, attrs[i] );
|
|
+ if (c_reply) {
|
|
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
|
|
+ "duplicate index definition for attr \"%s\"",
|
|
+ attrs[i] );
|
|
+ fprintf( stderr, "%s: line %d: %s\n",
|
|
+ fname, lineno, c_reply->msg );
|
|
+ }
|
|
|
|
rc = LDAP_PARAM_ERROR;
|
|
goto done;
|
|
Index: servers/slapd/back-bdb/config.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/config.c,v
|
|
retrieving revision 1.108
|
|
diff -u -r1.108 config.c
|
|
--- servers/slapd/back-bdb/config.c 26 Aug 2008 23:45:35 -0000 1.108
|
|
+++ servers/slapd/back-bdb/config.c 23 Sep 2008 13:09:29 -0000
|
|
@@ -736,7 +736,7 @@
|
|
|
|
case BDB_INDEX:
|
|
rc = bdb_attr_index_config( bdb, c->fname, c->lineno,
|
|
- c->argc - 1, &c->argv[1] );
|
|
+ c->argc - 1, &c->argv[1], &c->reply);
|
|
|
|
if( rc != LDAP_SUCCESS ) return 1;
|
|
if (( bdb->bi_flags & BDB_IS_OPEN ) && !bdb->bi_index_task ) {
|
|
Index: servers/slapd/back-bdb/proto-bdb.h
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/proto-bdb.h,v
|
|
retrieving revision 1.160
|
|
diff -u -r1.160 proto-bdb.h
|
|
--- servers/slapd/back-bdb/proto-bdb.h 26 Aug 2008 23:45:35 -0000 1.160
|
|
+++ servers/slapd/back-bdb/proto-bdb.h 23 Sep 2008 13:09:29 -0000
|
|
@@ -49,7 +49,7 @@
|
|
|
|
int bdb_attr_index_config LDAP_P(( struct bdb_info *bdb,
|
|
const char *fname, int lineno,
|
|
- int argc, char **argv ));
|
|
+ int argc, char **argv, struct config_reply_s *cr ));
|
|
|
|
void bdb_attr_index_unparse LDAP_P(( struct bdb_info *bdb, BerVarray *bva ));
|
|
void bdb_attr_index_destroy LDAP_P(( struct bdb_info *bdb ));
|