]> git.sur5r.net Git - openldap/commitdiff
Don't publish non-implemented syntaxes and matching rules
authorKurt Zeilenga <kurt@openldap.org>
Tue, 17 Oct 2000 21:36:36 +0000 (21:36 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 17 Oct 2000 21:36:36 +0000 (21:36 +0000)
CHANGES
servers/slapd/mr.c
servers/slapd/schema_init.c
servers/slapd/syntax.c

diff --git a/CHANGES b/CHANGES
index 789925b262058638fb0a3732ad5905ade98aeb48..e70019f90814befa87fe3f77c946961b3289deb4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,7 @@ OpenLDAP 2.0.X Engineering
        Updated -llber large element handling
        Updated slapadd error reporting
        Updated slapd chroot handling (ITS#810)
+       Updated slapd subschema subentry
        Added slapd numericString indexing
        Removed lint
        Build Environment
index 7648fb6ac7cf0bde5893e11f3e16af8c5c91b946..705c2b7aa64c4ee1b8972de9b59e9e935b95911f 100644 (file)
@@ -226,6 +226,11 @@ int mr_schema_info( Entry *e )
        vals[1] = NULL;
 
        for ( mr = mr_list; mr; mr = mr->smr_next ) {
+               if ( ! mr->smr_match ) {
+                       /* skip rules without matching functions */
+                       continue;
+               }
+
                val.bv_val = ldap_matchingrule2str( &mr->smr_mrule );
 
                if ( val.bv_val == NULL ) {
index 7c71723029614022014c7bbdef3ced2846fad88f..cbbd6d77a9aa20356c0a63ca17a27ede55f8999f 100644 (file)
@@ -3645,7 +3645,6 @@ struct syntax_defs_rec {
 #endif
 };
 
-#define X_HIDE "X-HIDE 'TRUE' "
 #define X_BINARY "X-BINARY-TRANSFER-REQUIRED 'TRUE' "
 #define X_NOT_H_R "X-NOT-HUMAN-READABLE 'TRUE' "
 
@@ -3658,8 +3657,8 @@ struct syntax_defs_rec syntax_defs[] = {
                0, NULL, NULL, NULL},
        {"( 1.3.6.1.4.1.1466.115.121.1.4 DESC 'Audio' " X_NOT_H_R ")",
                SLAP_SYNTAX_BLOB, blobValidate, NULL, NULL},
-       {"( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' " X_BINARY X_NOT_H_R ")",
-               SLAP_SYNTAX_BINARY|SLAP_SYNTAX_BER, berValidate, NULL, NULL},
+       {"( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' " X_NOT_H_R ")",
+               SLAP_SYNTAX_BER, berValidate, NULL, NULL},
        {"( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' )",
                0, bitStringValidate, NULL, NULL },
        {"( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )",
@@ -3775,7 +3774,7 @@ struct syntax_defs_rec syntax_defs[] = {
                0, NULL, NULL, NULL},
 
        /* OpenLDAP Void Syntax */
-       {"( 1.3.6.1.4.1.4203.1.1.1 DESC 'OpenLDAP void' " X_HIDE ")" ,
+       {"( 1.3.6.1.4.1.4203.1.1.1 DESC 'OpenLDAP void' )" ,
                SLAP_SYNTAX_HIDE, inValidate, NULL, NULL},
        {NULL, 0, NULL, NULL, NULL}
 };
index 9b9e01c809e3ccde6a8e7f2f2e924fde75e78de0..9a3c0b21f339bcc47fe18e415bb8417de7fb61b3 100644 (file)
@@ -183,6 +183,15 @@ syn_schema_info( Entry *e )
        vals[1] = NULL;
 
        for ( syn = syn_list; syn; syn = syn->ssyn_next ) {
+               if ( ! syn->ssyn_validate ) {
+                       /* skip syntaxes without validators */
+                       continue;
+               }
+               if ( syn->ssyn_flags & SLAP_SYNTAX_HIDE ) {
+                       /* hide syntaxes */
+                       continue;
+               }
+
                val.bv_val = ldap_syntax2str( &syn->ssyn_syn );
                if ( val.bv_val == NULL ) {
                        return -1;