From: Howard Chu Date: Wed, 13 Sep 2006 13:05:19 +0000 (+0000) Subject: Use register_at / register_oc helpers X-Git-Tag: OPENLDAP_REL_ENG_2_3_MP~158 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ef271979a8328baac9b349e229c7847130184bcf;p=openldap Use register_at / register_oc helpers --- diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c index 5e1ded3184..442d7a53c4 100644 --- a/servers/slapd/back-monitor/init.c +++ b/servers/slapd/back-monitor/init.c @@ -1531,12 +1531,11 @@ monitor_back_initialize( }; struct m_s { - char *name; char *schema; slap_mask_t flags; int offset; } moc[] = { - { "monitor", "( 1.3.6.1.4.1.4203.666.3.16.1 " + { "( 1.3.6.1.4.1.4203.666.3.16.1 " "NAME 'monitor' " "DESC 'OpenLDAP system monitoring' " "SUP top STRUCTURAL " @@ -1550,44 +1549,44 @@ monitor_back_initialize( "$ monitorOverlay " ") )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitor) }, - { "monitorServer", "( 1.3.6.1.4.1.4203.666.3.16.2 " + { "( 1.3.6.1.4.1.4203.666.3.16.2 " "NAME 'monitorServer' " "DESC 'Server monitoring root entry' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitorServer) }, - { "monitorContainer", "( 1.3.6.1.4.1.4203.666.3.16.3 " + { "( 1.3.6.1.4.1.4203.666.3.16.3 " "NAME 'monitorContainer' " "DESC 'monitor container class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitorContainer) }, - { "monitorCounterObject", "( 1.3.6.1.4.1.4203.666.3.16.4 " + { "( 1.3.6.1.4.1.4203.666.3.16.4 " "NAME 'monitorCounterObject' " "DESC 'monitor counter class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitorCounterObject) }, - { "monitorOperation", "( 1.3.6.1.4.1.4203.666.3.16.5 " + { "( 1.3.6.1.4.1.4203.666.3.16.5 " "NAME 'monitorOperation' " "DESC 'monitor operation class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitorOperation) }, - { "monitorConnection", "( 1.3.6.1.4.1.4203.666.3.16.6 " + { "( 1.3.6.1.4.1.4203.666.3.16.6 " "NAME 'monitorConnection' " "DESC 'monitor connection class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitorConnection) }, - { "managedObject", "( 1.3.6.1.4.1.4203.666.3.16.7 " + { "( 1.3.6.1.4.1.4203.666.3.16.7 " "NAME 'managedObject' " "DESC 'monitor managed entity class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_managedObject) }, - { "monitoredObject", "( 1.3.6.1.4.1.4203.666.3.16.8 " + { "( 1.3.6.1.4.1.4203.666.3.16.8 " "NAME 'monitoredObject' " "DESC 'monitor monitored entity class' " "SUP monitor STRUCTURAL )", SLAP_OC_OPERATIONAL|SLAP_OC_HIDE, offsetof(monitor_info_t, mi_oc_monitoredObject) }, - { NULL, NULL, 0, -1 } + { NULL, 0, -1 } }, mat[] = { - { "monitoredInfo", "( 1.3.6.1.4.1.4203.666.1.55.1 " + { "( 1.3.6.1.4.1.4203.666.1.55.1 " "NAME 'monitoredInfo' " "DESC 'monitored info' " /* "SUP name " */ @@ -1597,12 +1596,12 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitoredInfo) }, - { "managedInfo", "( 1.3.6.1.4.1.4203.666.1.55.2 " + { "( 1.3.6.1.4.1.4203.666.1.55.2 " "NAME 'managedInfo' " "DESC 'monitor managed info' " "SUP name )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_managedInfo) }, - { "monitorCounter", "( 1.3.6.1.4.1.4203.666.1.55.3 " + { "( 1.3.6.1.4.1.4203.666.1.55.3 " "NAME 'monitorCounter' " "DESC 'monitor counter' " "EQUALITY integerMatch " @@ -1611,28 +1610,28 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorCounter) }, - { "monitorOpCompleted", "( 1.3.6.1.4.1.4203.666.1.55.4 " + { "( 1.3.6.1.4.1.4203.666.1.55.4 " "NAME 'monitorOpCompleted' " "DESC 'monitor completed operations' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorOpCompleted) }, - { "monitorOpInitiated", "( 1.3.6.1.4.1.4203.666.1.55.5 " + { "( 1.3.6.1.4.1.4203.666.1.55.5 " "NAME 'monitorOpInitiated' " "DESC 'monitor initiated operations' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorOpInitiated) }, - { "monitorConnectionNumber", "( 1.3.6.1.4.1.4203.666.1.55.6 " + { "( 1.3.6.1.4.1.4203.666.1.55.6 " "NAME 'monitorConnectionNumber' " "DESC 'monitor connection number' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionNumber) }, - { "monitorConnectionAuthzDN", "( 1.3.6.1.4.1.4203.666.1.55.7 " + { "( 1.3.6.1.4.1.4203.666.1.55.7 " "NAME 'monitorConnectionAuthzDN' " "DESC 'monitor connection authorization DN' " /* "SUP distinguishedName " */ @@ -1641,21 +1640,21 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionAuthzDN) }, - { "monitorConnectionLocalAddress", "( 1.3.6.1.4.1.4203.666.1.55.8 " + { "( 1.3.6.1.4.1.4203.666.1.55.8 " "NAME 'monitorConnectionLocalAddress' " "DESC 'monitor connection local address' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionLocalAddress) }, - { "monitorConnectionPeerAddress", "( 1.3.6.1.4.1.4203.666.1.55.9 " + { "( 1.3.6.1.4.1.4203.666.1.55.9 " "NAME 'monitorConnectionPeerAddress' " "DESC 'monitor connection peer address' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionPeerAddress) }, - { "monitorTimestamp", "( 1.3.6.1.4.1.4203.666.1.55.10 " + { "( 1.3.6.1.4.1.4203.666.1.55.10 " "NAME 'monitorTimestamp' " "DESC 'monitor timestamp' " "EQUALITY generalizedTimeMatch " @@ -1665,14 +1664,14 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorTimestamp) }, - { "monitorOverlay", "( 1.3.6.1.4.1.4203.666.1.55.11 " + { "( 1.3.6.1.4.1.4203.666.1.55.11 " "NAME 'monitorOverlay' " "DESC 'name of overlays defined for a given database' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorOverlay) }, - { "readOnly", "( 1.3.6.1.4.1.4203.666.1.55.12 " + { "( 1.3.6.1.4.1.4203.666.1.55.12 " "NAME 'readOnly' " "DESC 'read/write status of a given database' " "EQUALITY booleanMatch " @@ -1680,89 +1679,89 @@ monitor_back_initialize( "SINGLE-VALUE " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_readOnly) }, - { "restrictedOperation", "( 1.3.6.1.4.1.4203.666.1.55.13 " + { "( 1.3.6.1.4.1.4203.666.1.55.13 " "NAME 'restrictedOperation' " "DESC 'name of restricted operation for a given database' " "SUP managedInfo )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_restrictedOperation ) }, - { "monitorConnectionProtocol", "( 1.3.6.1.4.1.4203.666.1.55.14 " + { "( 1.3.6.1.4.1.4203.666.1.55.14 " "NAME 'monitorConnectionProtocol' " "DESC 'monitor connection protocol' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionProtocol) }, - { "monitorConnectionOpsReceived", "( 1.3.6.1.4.1.4203.666.1.55.15 " + { "( 1.3.6.1.4.1.4203.666.1.55.15 " "NAME 'monitorConnectionOpsReceived' " "DESC 'monitor number of operations received by the connection' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionOpsReceived) }, - { "monitorConnectionOpsExecuting", "( 1.3.6.1.4.1.4203.666.1.55.16 " + { "( 1.3.6.1.4.1.4203.666.1.55.16 " "NAME 'monitorConnectionOpsExecuting' " "DESC 'monitor number of operations in execution within the connection' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionOpsExecuting) }, - { "monitorConnectionOpsPending", "( 1.3.6.1.4.1.4203.666.1.55.17 " + { "( 1.3.6.1.4.1.4203.666.1.55.17 " "NAME 'monitorConnectionOpsPending' " "DESC 'monitor number of pending operations within the connection' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionOpsPending) }, - { "monitorConnectionOpsCompleted", "( 1.3.6.1.4.1.4203.666.1.55.18 " + { "( 1.3.6.1.4.1.4203.666.1.55.18 " "NAME 'monitorConnectionOpsCompleted' " "DESC 'monitor number of operations completed within the connection' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionOpsCompleted) }, - { "monitorConnectionGet", "( 1.3.6.1.4.1.4203.666.1.55.19 " + { "( 1.3.6.1.4.1.4203.666.1.55.19 " "NAME 'monitorConnectionGet' " "DESC 'number of times connection_get() was called so far' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionGet) }, - { "monitorConnectionRead", "( 1.3.6.1.4.1.4203.666.1.55.20 " + { "( 1.3.6.1.4.1.4203.666.1.55.20 " "NAME 'monitorConnectionRead' " "DESC 'number of times connection_read() was called so far' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionRead) }, - { "monitorConnectionWrite", "( 1.3.6.1.4.1.4203.666.1.55.21 " + { "( 1.3.6.1.4.1.4203.666.1.55.21 " "NAME 'monitorConnectionWrite' " "DESC 'number of times connection_write() was called so far' " "SUP monitorCounter " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionWrite) }, - { "monitorConnectionMask", "( 1.3.6.1.4.1.4203.666.1.55.22 " + { "( 1.3.6.1.4.1.4203.666.1.55.22 " "NAME 'monitorConnectionMask' " "DESC 'monitor connection mask' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionMask) }, - { "monitorConnectionListener", "( 1.3.6.1.4.1.4203.666.1.55.23 " + { "( 1.3.6.1.4.1.4203.666.1.55.23 " "NAME 'monitorConnectionListener' " "DESC 'monitor connection listener' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionListener) }, - { "monitorConnectionPeerDomain", "( 1.3.6.1.4.1.4203.666.1.55.24 " + { "( 1.3.6.1.4.1.4203.666.1.55.24 " "NAME 'monitorConnectionPeerDomain' " "DESC 'monitor connection peer domain' " "SUP monitoredInfo " "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionPeerDomain) }, - { "monitorConnectionStartTime", "( 1.3.6.1.4.1.4203.666.1.55.25 " + { "( 1.3.6.1.4.1.4203.666.1.55.25 " "NAME 'monitorConnectionStartTime' " "DESC 'monitor connection start time' " "SUP monitorTimestamp " @@ -1770,7 +1769,7 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionStartTime) }, - { "monitorConnectionActivityTime", "( 1.3.6.1.4.1.4203.666.1.55.26 " + { "( 1.3.6.1.4.1.4203.666.1.55.26 " "NAME 'monitorConnectionActivityTime' " "DESC 'monitor connection activity time' " "SUP monitorTimestamp " @@ -1778,7 +1777,7 @@ monitor_back_initialize( "NO-USER-MODIFICATION " "USAGE directoryOperation )", SLAP_AT_FINAL|SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorConnectionActivityTime) }, - { "monitorIsShadow", "( 1.3.6.1.4.1.4203.666.1.55.27 " + { "( 1.3.6.1.4.1.4203.666.1.55.27 " "NAME 'monitorIsShadow' " "DESC 'TRUE if the database is shadow' " "EQUALITY booleanMatch " @@ -1786,14 +1785,14 @@ monitor_back_initialize( "SINGLE-VALUE " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorIsShadow) }, - { "monitorUpdateRef", "( 1.3.6.1.4.1.4203.666.1.55.28 " + { "( 1.3.6.1.4.1.4203.666.1.55.28 " "NAME 'monitorUpdateRef' " "DESC 'update referral for shadow databases' " "SUP monitoredInfo " "SINGLE-VALUE " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorUpdateRef) }, - { "monitorRuntimeConfig", "( 1.3.6.1.4.1.4203.666.1.55.29 " + { "( 1.3.6.1.4.1.4203.666.1.55.29 " "NAME 'monitorRuntimeConfig' " "DESC 'TRUE if component allows runtime configuration' " "EQUALITY booleanMatch " @@ -1801,7 +1800,7 @@ monitor_back_initialize( "SINGLE-VALUE " "USAGE directoryOperation )", SLAP_AT_HIDE, offsetof(monitor_info_t, mi_ad_monitorRuntimeConfig) }, - { NULL, NULL, 0, -1 } + { NULL, 0, -1 } }; static struct { @@ -1854,95 +1853,34 @@ monitor_back_initialize( } /* schema integration */ - for ( i = 0; mat[ i ].name; i++ ) { - LDAPAttributeType *at; + for ( i = 0; mat[ i ].schema; i++ ) { int code; - const char *err; - AttributeDescription **ad; - - at = ldap_str2attributetype( mat[ i ].schema, &code, - &err, LDAP_SCHEMA_ALLOW_ALL ); - if ( !at ) { - Debug( LDAP_DEBUG_ANY, "monitor_back_db_init: " - "in AttributeType \"%s\" %s before %s\n", - mat[ i ].name, ldap_scherr2str(code), err ); - return -1; - } + AttributeDescription **ad = + ((AttributeDescription **)&(((char *)mi)[ mat[ i ].offset ])); - if ( at->at_oid == NULL ) { - ldap_attributetype_free(at); - Debug( LDAP_DEBUG_ANY, "monitor_back_db_init: " - "null OID for attributeType \"%s\"\n", - mat[ i ].name, 0, 0 ); - return -1; - } + *ad = NULL; + code = register_at( mat[ i ].schema, ad, 0 ); - code = at_add(at, 0, NULL, &err); if ( code ) { - ldap_attributetype_free(at); - Debug( LDAP_DEBUG_ANY, "monitor_back_db_init: " - "%s in attributeType \"%s\"\n", - scherr2str(code), mat[ i ].name, 0 ); - return -1; - } - ldap_memfree(at); - - ad = ((AttributeDescription **)&(((char *)mi)[ mat[ i ].offset ])); - ad[ 0 ] = NULL; - if ( slap_str2ad( mat[ i ].name, ad, &text ) ) { Debug( LDAP_DEBUG_ANY, - "monitor_back_db_init: %s\n", text, 0, 0 ); + "monitor_back_db_init: register_at failed\n", 0, 0, 0 ); return -1; } - (*ad)->ad_type->sat_flags |= mat[ i ].flags; } - for ( i = 0; moc[ i ].name; i++ ) { - LDAPObjectClass *oc; + for ( i = 0; moc[ i ].schema; i++ ) { int code; - const char *err; - ObjectClass *Oc; + ObjectClass **Oc = + ((ObjectClass **)&(((char *)mi)[ moc[ i ].offset ])); - oc = ldap_str2objectclass(moc[ i ].schema, &code, &err, - LDAP_SCHEMA_ALLOW_ALL ); - if ( !oc ) { - Debug( LDAP_DEBUG_ANY, - "unable to parse monitor objectclass \"%s\": " - "%s before %s\n" , moc[ i ].name, - ldap_scherr2str(code), err ); - return -1; - } - - if ( oc->oc_oid == NULL ) { - ldap_objectclass_free(oc); - Debug( LDAP_DEBUG_ANY, - "objectclass \"%s\" has no OID\n" , - moc[ i ].name, 0, 0 ); - return -1; - } - - code = oc_add(oc, 0, NULL, &err); + code = register_oc( moc[ i ].schema, Oc, 0 ); if ( code ) { - ldap_objectclass_free(oc); Debug( LDAP_DEBUG_ANY, - "objectclass \"%s\": %s \"%s\"\n" , - moc[ i ].name, scherr2str(code), err ); + "monitor_back_db_init: register_oc failed\n", 0, 0, 0 ); return -1; } - ldap_memfree(oc); - - Oc = oc_find( moc[ i ].name ); - if ( Oc == NULL ) { - Debug( LDAP_DEBUG_ANY, "monitor_back_db_init: " - "unable to find objectClass %s " - "(just added)\n", moc[ i ].name, 0, 0 ); - return -1; - } - - Oc->soc_flags |= moc[ i ].flags; - - ((ObjectClass **)&(((char *)mi)[ moc[ i ].offset ]))[ 0 ] = Oc; + (*Oc)->soc_flags |= moc[ i ].flags; } bi->bi_controls = controls;