From 88be64a250f3c63c3d33fed2117d19ee40360a03 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Tue, 17 Oct 2000 21:36:36 +0000 Subject: [PATCH] Don't publish non-implemented syntaxes and matching rules --- CHANGES | 1 + servers/slapd/mr.c | 5 +++++ servers/slapd/schema_init.c | 7 +++---- servers/slapd/syntax.c | 9 +++++++++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 789925b262..e70019f908 100644 --- 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 diff --git a/servers/slapd/mr.c b/servers/slapd/mr.c index 7648fb6ac7..705c2b7aa6 100644 --- a/servers/slapd/mr.c +++ b/servers/slapd/mr.c @@ -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 ) { diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index 7c71723029..cbbd6d77a9 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -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} }; diff --git a/servers/slapd/syntax.c b/servers/slapd/syntax.c index 9b9e01c809..9a3c0b21f3 100644 --- a/servers/slapd/syntax.c +++ b/servers/slapd/syntax.c @@ -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; -- 2.47.2