]> git.sur5r.net Git - openldap/commitdiff
Add HARDCODE schema flags
authorHoward Chu <hyc@openldap.org>
Mon, 21 Mar 2005 00:22:54 +0000 (00:22 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 21 Mar 2005 00:22:54 +0000 (00:22 +0000)
12 files changed:
servers/slapd/at.c
servers/slapd/back-monitor/init.c
servers/slapd/bconfig.c
servers/slapd/config.c
servers/slapd/oidm.c
servers/slapd/overlays/lastmod.c
servers/slapd/overlays/pcache.c
servers/slapd/overlays/ppolicy.c
servers/slapd/proto-slap.h
servers/slapd/schema_prep.c
servers/slapd/schemaparse.c
servers/slapd/slap.h

index c6f363b6904b3b0433fb1ba14eb06fdaf8a772aa..190ecf86b96d6e7f5831450a161984f6a1e34298 100644 (file)
@@ -313,6 +313,7 @@ at_insert(
 int
 at_add(
     LDAPAttributeType  *at,
+       int                             user,
     const char         **err )
 {
        AttributeType   *sat;
@@ -451,6 +452,9 @@ at_add(
                }
        }
 
+       if ( !user )
+               sat->sat_flags |= SLAP_AT_HARDCODE;
+
        if ( at->at_syntax_oid ) {
                syn = syn_find(sat->sat_syntax_oid);
                if ( syn == NULL ) {
index 6fed315d2f2c7cfce77139683fe845877c6fad87..20335f602eecbdeab2fc37006617b732b5c3d98f 100644 (file)
@@ -1035,7 +1035,7 @@ monitor_back_db_init(
                        return -1;
                }
 
-               code = at_add(at, &err);
+               code = at_add(at, 0, &err);
                if ( code ) {
                        Debug( LDAP_DEBUG_ANY, "monitor_back_db_init: "
                                "%s in attributeType \"%s\"\n",
index 63869515a651e84a6a5d863ea4f940fac25b8626..a62876af53984ed845c9b001089a4f18ed4e053f 100644 (file)
@@ -899,7 +899,7 @@ config_generic(ConfigArgs *c) {
                        break;
 
                case CFG_OID:
-                       if(parse_oidm(c->fname, c->lineno, c->argc, c->argv)) return(0);
+                       if(parse_oidm(c->fname, c->lineno, c->argc, c->argv, 1)) return(0);
                        break;
 
                case CFG_OC:
@@ -3547,7 +3547,7 @@ config_back_initialize( BackendInfo *bi )
        for (i=0; OidMacros[i].name; i++ ) {
                argv[1] = OidMacros[i].name;
                argv[2] = OidMacros[i].oid;
-               parse_oidm( "slapd", i, 3, argv );
+               parse_oidm( "slapd", i, 3, argv, 0 );
        }
 
        bi->bi_cf_table = ct;
index a3cd4f37fec72e93cc508134183bdf4cbcce1383..4ca60728b6dea093d3a4d055f851afa0a33b33e9 100644 (file)
@@ -404,7 +404,7 @@ init_config_attrs(ConfigTable *ct) {
                                ct[i].attribute, ldap_scherr2str(code), err );
                        return code;
                }
-               code = at_add( at, &err );
+               code = at_add( at, 0, &err );
                if ( code && code != SLAP_SCHERR_ATTR_DUP ) {
                        fprintf( stderr, "init_config_attrs: AttributeType \"%s\": %s, %s\n",
                                ct[i].attribute, scherr2str(code), err );
index 6a2e62c0780acf4addf685fffad151cc8af9ef81..3a20fcde4377fd7fe003024c3470f4290018ce81 100644 (file)
@@ -95,7 +95,8 @@ parse_oidm(
     const char *fname,
     int                lineno,
     int                argc,
-    char       **argv )
+    char       **argv,
+       int             user )
 {
        char *oid;
        OidMacro *om;
@@ -143,6 +144,8 @@ usage:      fprintf( stderr, "\tObjectIdentifier <name> <oid>\n");
        }
 
        om->som_oid.bv_len = strlen( om->som_oid.bv_val );
+       if ( !user )
+               om->som_flags |= SLAP_OM_HARDCODE;
 
        LDAP_SLIST_INSERT_HEAD( &om_list, om, som_next );
        return 0;
index 454239c0bcf63d8f7f01fed73e4247aad03dd1cd..714a2d10faa2ea65442dd2af32edfa631374dd31 100644 (file)
@@ -781,7 +781,7 @@ lastmod_db_init(
                                return -1;
                        }
        
-                       code = at_add(at, &err);
+                       code = at_add(at, 0, &err);
                        if ( code ) {
                                Debug( LDAP_DEBUG_ANY, "lastmod_init: "
                                        "%s in attributeType '%s'\n",
index b078908da5f287bb588fa237c100b08c9eb055bd..7c9054a2df1d1704fcc686c4703a750a1d4e3e89 100644 (file)
@@ -1925,7 +1925,7 @@ int pcache_init()
                        ldap_scherr2str(code), err );
                return code;
        }
-       code = at_add( at, &err );
+       code = at_add( at, 0, &err );
        if ( !code ) {
                slap_str2ad( at->at_names[0], &ad_queryid, &err );
        }
index f572875fef781615c35a269607984e3babb6149f..44ff4f9bde814fca1ccab643281f3f8c2f123cfa 100644 (file)
@@ -1797,7 +1797,7 @@ int ppolicy_init()
                                ldap_scherr2str(code), err );
                        return code;
                }
-               code = at_add( at, &err );
+               code = at_add( at, 0, &err );
                if ( !code ) {
                        slap_str2ad( at->at_names[0], pwd_OpSchema[i].ad, &err );
                }
index bedbb5a36e2d7e8aceb6d4b729082d8796eb193e..ed1f1be62bddf202b6770d9a5f975b0388f805e8 100644 (file)
@@ -161,7 +161,7 @@ LDAP_SLAPD_F (int) at_delete_from_list LDAP_P((
        int pos, AttributeType ***listp ));
 LDAP_SLAPD_F (int) at_schema_info LDAP_P(( Entry *e ));
 LDAP_SLAPD_F (int) at_add LDAP_P((
-       LDAPAttributeType *at, const char **err ));
+       LDAPAttributeType *at, int user, const char **err ));
 LDAP_SLAPD_F (void) at_destroy LDAP_P(( void ));
 
 LDAP_SLAPD_F (int) is_at_subtype LDAP_P((
@@ -1008,7 +1008,7 @@ LDAP_SLAPD_F(char *) oidm_find(char *oid);
 LDAP_SLAPD_F (void) oidm_destroy LDAP_P(( void ));
 LDAP_SLAPD_F (void) oidm_unparse LDAP_P(( BerVarray *bva ));
 LDAP_SLAPD_F (int) parse_oidm LDAP_P((
-       const char *fname, int lineno, int argc, char **argv ));
+       const char *fname, int lineno, int argc, char **argv, int user ));
 
 /*
  * operation.c
index 2b11d0ff34e9664247c7abac6fd372cf9621f288..b64f76751c83b5e77de542a2ba81a0124313c197 100644 (file)
@@ -1124,7 +1124,7 @@ slap_schema_load( void )
                                return LDAP_OTHER;
                        }
 
-                       code = at_add( at, &err );
+                       code = at_add( at, 0, &err );
                        if ( code ) {
                                fprintf( stderr, "slap_schema_load: AttributeType "
                                        "\"%s\": %s: \"%s\"\n",
index a1c6f34f12cf2caee2f5e89334f0fca096568cfd..c1e7195ba2ba5413c13d64fc1e7b3925be2a8377 100644 (file)
@@ -274,7 +274,7 @@ parse_at(
                return 1;
        }
 
-       code = at_add(at,&err);
+       code = at_add(at,1,&err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
index 1b65ad116c2d2fb4882427fc18439ac2376aaef1..163971107a1a5ed7e90ec89ebef85a4686fdc9e0 100644 (file)
@@ -323,6 +323,8 @@ typedef struct slap_oid_macro {
        struct berval som_oid;
        BerVarray som_names;
        BerVarray som_subs;
+#define        SLAP_OM_HARDCODE        0x10000U        /* This is hardcoded schema */
+       int som_flags;
        LDAP_SLIST_ENTRY(slap_oid_macro) som_next;
 } OidMacro;
 
@@ -649,6 +651,7 @@ typedef struct slap_attribute_type {
 #define        SLAP_AT_DYNAMIC         0x0400U /* dynamically generated */
 
 #define        SLAP_AT_ORDERED         0x0001U /* values are ordered */
+#define        SLAP_AT_HARDCODE        0x10000U        /* This is hardcoded schema */
 
        slap_mask_t                                     sat_flags;
 
@@ -725,6 +728,7 @@ typedef struct slap_object_class {
 #else
 #define SLAP_OC_HIDE           0x8000
 #endif
+#define        SLAP_OC_HARDCODE        0x10000U        /* This is hardcoded schema */
 
 /*
  * DIT content rule