mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
Add monitor_entry_stub() for creating entries. Fix conn peer/local mismatch.
This commit is contained in:
parent
3a58263037
commit
797cffb9b3
@ -83,6 +83,7 @@ typedef struct monitor_info_t {
|
||||
*/
|
||||
struct berval mi_startTime; /* don't free it! */
|
||||
struct berval mi_creatorsName; /* don't free it! */
|
||||
struct berval mi_ncreatorsName; /* don't free it! */
|
||||
|
||||
/*
|
||||
* Specific schema entities
|
||||
|
@ -79,32 +79,12 @@ monitor_subsys_backend_init(
|
||||
|
||||
i++;
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Backend %d,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Backend %d\n"
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
i,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
i,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
bi->bi_type,
|
||||
mi->mi_ad_monitorRuntimeConfig->ad_cname.bv_val,
|
||||
bi->bi_cf_ocs == NULL ? "FALSE" : "TRUE",
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "cn=Backend %d", i );
|
||||
bv.bv_val = buf;
|
||||
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_backend_init: "
|
||||
@ -114,9 +94,15 @@ monitor_subsys_backend_init(
|
||||
}
|
||||
|
||||
ber_str2bv( bi->bi_type, 0, 0, &bv );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitoredInfo,
|
||||
&bv, NULL );
|
||||
attr_merge_normalize_one( e_backend, mi->mi_ad_monitoredInfo,
|
||||
&bv, NULL );
|
||||
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorRuntimeConfig,
|
||||
bi->bi_cf_ocs == NULL ? (struct berval *)&slap_false_bv :
|
||||
(struct berval *)&slap_true_bv, NULL );
|
||||
|
||||
if ( bi->bi_controls ) {
|
||||
int j;
|
||||
|
||||
|
@ -79,24 +79,10 @@ monitor_subsys_conn_init(
|
||||
/*
|
||||
* Total conns
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Total,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Total\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
BER_BVSTR( &bv, "cn=Total" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitorCounterObject, mi, NULL, NULL );
|
||||
|
||||
e = str2entry( buf );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_conn_init: "
|
||||
@ -132,24 +118,10 @@ monitor_subsys_conn_init(
|
||||
/*
|
||||
* Current conns
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Current,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Current\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Current" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitorCounterObject, mi, NULL, NULL );
|
||||
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_conn_init: "
|
||||
@ -252,17 +224,20 @@ conn_create(
|
||||
monitor_subsys_t *ms )
|
||||
{
|
||||
monitor_entry_t *mp;
|
||||
struct tm *ltm;
|
||||
struct tm *tm;
|
||||
char buf[ BACKMONITOR_BUFSIZE ];
|
||||
char buf2[ LDAP_LUTIL_GENTIME_BUFSIZE ];
|
||||
char buf3[ LDAP_LUTIL_GENTIME_BUFSIZE ];
|
||||
|
||||
struct berval bv, ctmbv, mtmbv, bv2, bv3;
|
||||
struct berval bv_unknown= BER_BVC("unknown");
|
||||
|
||||
Entry *e;
|
||||
|
||||
struct tm *ctm;
|
||||
#ifdef HACK_LOCAL_TIME
|
||||
char ctmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ];
|
||||
struct tm *mtm;
|
||||
char mtmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ];
|
||||
#endif
|
||||
#ifdef HAVE_GMTIME_R
|
||||
struct tm tm_buf;
|
||||
#endif /* HAVE_GMTIME_R */
|
||||
@ -273,67 +248,69 @@ conn_create(
|
||||
#ifndef HAVE_GMTIME_R
|
||||
ldap_pvt_thread_mutex_lock( &gmtime_mutex );
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GMTIME_R
|
||||
tm = gmtime_r( &c->c_starttime, &tm_buf );
|
||||
#else
|
||||
tm = gmtime( &c->c_starttime );
|
||||
#endif
|
||||
bv2.bv_len = lutil_gentime( buf2, sizeof( buf2 ), tm );
|
||||
bv2.bv_val = buf2;
|
||||
#ifdef HACK_LOCAL_TIME
|
||||
# ifdef HAVE_LOCALTIME_R
|
||||
ctm = localtime_r( &c->c_starttime, &tm_buf );
|
||||
lutil_localtime( ctmbuf, sizeof( ctmbuf ), ctm, -timezone );
|
||||
mtm = localtime_r( &c->c_activitytime, &tm_buf );
|
||||
lutil_localtime( mtmbuf, sizeof( mtmbuf ), mtm, -timezone );
|
||||
tm = localtime_r( &c->c_starttime, &tm_buf );
|
||||
# else
|
||||
ctm = localtime( &c->c_starttime );
|
||||
lutil_localtime( ctmbuf, sizeof( ctmbuf ), ctm, -timezone );
|
||||
mtm = localtime( &c->c_activitytime );
|
||||
lutil_localtime( mtmbuf, sizeof( mtmbuf ), mtm, -timezone );
|
||||
# endif /* HAVE_LOCALTIME_R */
|
||||
tm = localtime( &c->c_starttime );
|
||||
# endif
|
||||
ctmbv.bv_len = lutil_localtime( ctmbuf, sizeof( ctmbuf ), tm, -timezone );
|
||||
ctmbv.bv_val = ctmbuf;
|
||||
#else /* !HACK_LOCAL_TIME */
|
||||
# ifdef HAVE_GMTIME_R
|
||||
ctm = gmtime_r( &c->c_starttime, &tm_buf );
|
||||
lutil_gentime( ctmbuf, sizeof( ctmbuf ), ctm );
|
||||
mtm = gmtime_r( &c->c_activitytime, &tm_buf );
|
||||
lutil_gentime( mtmbuf, sizeof( mtmbuf ), mtm );
|
||||
ctmbv = bv2;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GMTIME_R
|
||||
tm = gmtime_r( &c->c_activitytime, &tm_buf );
|
||||
#else
|
||||
tm = gmtime( &c->c_activitytime );
|
||||
#endif
|
||||
bv3.bv_len = lutil_gentime( buf3, sizeof( buf3 ), tm );
|
||||
bv3.bv_val = buf3;
|
||||
#ifdef HACK_LOCAL_TIME
|
||||
# ifdef HAVE_LOCALTIME_R
|
||||
tm = localtime_r( &c->c_activitytime, &tm_buf );
|
||||
# else
|
||||
ctm = gmtime( &c->c_starttime );
|
||||
lutil_gentime( ctmbuf, sizeof( ctmbuf ), ctm );
|
||||
mtm = gmtime( &c->c_activitytime );
|
||||
lutil_gentime( mtmbuf, sizeof( mtmbuf ), mtm );
|
||||
# endif /* HAVE_GMTIME_R */
|
||||
#endif /* !HACK_LOCAL_TIME */
|
||||
tm = localtime( &c->c_activitytime );
|
||||
# endif /* HAVE_LOCALTIME_R */
|
||||
mtmbv.bv_len = lutil_localtime( mtmbuf, sizeof( mtmbuf ), tm, -timezone );
|
||||
mtmbv.bv_val = mtmbuf;
|
||||
#else /* !HACK_LOCAL_TIME */
|
||||
mtmbv = bv3;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GMTIME_R
|
||||
ldap_pvt_thread_mutex_unlock( &gmtime_mutex );
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GMTIME_R
|
||||
ldap_pvt_thread_mutex_lock( &gmtime_mutex );
|
||||
#endif
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ),
|
||||
"cn=Connection %ld", c->c_connid );
|
||||
bv.bv_val = buf;
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitorConnection, mi, &ctmbv, &mtmbv );
|
||||
|
||||
#ifdef HAVE_GMTIME_R
|
||||
ltm = gmtime_r( &c->c_starttime, &tm_buf );
|
||||
#else
|
||||
ltm = gmtime( &c->c_starttime );
|
||||
#endif
|
||||
lutil_gentime( buf2, sizeof( buf2 ), ltm );
|
||||
|
||||
#ifdef HAVE_GMTIME_R
|
||||
ltm = gmtime_r( &c->c_activitytime, &tm_buf );
|
||||
#else
|
||||
ltm = gmtime( &c->c_activitytime );
|
||||
#endif
|
||||
lutil_gentime( buf3, sizeof( buf3 ), ltm );
|
||||
|
||||
#ifndef HAVE_GMTIME_R
|
||||
ldap_pvt_thread_mutex_unlock( &gmtime_mutex );
|
||||
#endif /* HAVE_GMTIME_R */
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Connection %ld,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Connection %ld\n"
|
||||
if ( e == NULL) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_conn_create: "
|
||||
"unable to create entry "
|
||||
"\"cn=Connection %ld,%s\"\n",
|
||||
c->c_connid,
|
||||
ms->mss_dn.bv_val, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
#ifdef MONITOR_LEGACY_CONN
|
||||
/* NOTE: this will disappear, as the exploded data
|
||||
* has been moved to dedicated attributes */
|
||||
"%s: "
|
||||
/* NOTE: this will disappear, as the exploded data
|
||||
* has been moved to dedicated attributes */
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ),
|
||||
"%ld "
|
||||
": %ld "
|
||||
": %ld/%ld/%ld/%ld "
|
||||
@ -345,44 +322,7 @@ conn_create(
|
||||
": %s "
|
||||
": %s "
|
||||
": %s "
|
||||
": %s\n"
|
||||
#endif /* MONITOR_LEGACY_CONN */
|
||||
|
||||
"%s: %lu\n"
|
||||
"%s: %ld\n"
|
||||
|
||||
"%s: %ld\n"
|
||||
"%s: %ld\n"
|
||||
"%s: %ld\n"
|
||||
"%s: %ld\n"
|
||||
|
||||
"%s: %ld\n"
|
||||
"%s: %ld\n"
|
||||
"%s: %ld\n"
|
||||
|
||||
"%s: %s%s%s%s%s%s\n"
|
||||
|
||||
"%s: %s\n"
|
||||
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
c->c_connid, ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorConnection->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorConnection->soc_cname.bv_val,
|
||||
c->c_connid,
|
||||
|
||||
#ifdef MONITOR_LEGACY_CONN
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
": %s",
|
||||
c->c_connid,
|
||||
(long) c->c_protocol,
|
||||
c->c_n_ops_received, c->c_n_ops_executing,
|
||||
@ -406,72 +346,67 @@ conn_create(
|
||||
c->c_sock_name.bv_val,
|
||||
|
||||
buf2,
|
||||
buf3,
|
||||
buf3 );
|
||||
attr_merge_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
#endif /* MONITOR_LEGACY_CONN */
|
||||
|
||||
mi->mi_ad_monitorConnectionNumber->ad_cname.bv_val,
|
||||
c->c_connid,
|
||||
mi->mi_ad_monitorConnectionProtocol->ad_cname.bv_val,
|
||||
(long)c->c_protocol,
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%lu", c->c_connid );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionNumber, &bv, NULL );
|
||||
|
||||
mi->mi_ad_monitorConnectionOpsReceived->ad_cname.bv_val,
|
||||
c->c_n_ops_received,
|
||||
mi->mi_ad_monitorConnectionOpsExecuting->ad_cname.bv_val,
|
||||
c->c_n_ops_executing,
|
||||
mi->mi_ad_monitorConnectionOpsPending->ad_cname.bv_val,
|
||||
c->c_n_ops_pending,
|
||||
mi->mi_ad_monitorConnectionOpsCompleted->ad_cname.bv_val,
|
||||
c->c_n_ops_completed,
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_protocol );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionProtocol, &bv, NULL );
|
||||
|
||||
mi->mi_ad_monitorConnectionGet->ad_cname.bv_val,
|
||||
c->c_n_get,
|
||||
mi->mi_ad_monitorConnectionRead->ad_cname.bv_val,
|
||||
c->c_n_read,
|
||||
mi->mi_ad_monitorConnectionWrite->ad_cname.bv_val,
|
||||
c->c_n_write,
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_ops_received );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionOpsReceived, &bv, NULL );
|
||||
|
||||
mi->mi_ad_monitorConnectionMask->ad_cname.bv_val,
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_ops_executing );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionOpsExecuting, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_ops_pending );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionOpsPending, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_ops_completed );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionOpsCompleted, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_get );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionGet, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_read );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionRead, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_write );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionWrite, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%s%s%s%s%s%s",
|
||||
c->c_currentber ? "r" : "",
|
||||
c->c_writewaiter ? "w" : "",
|
||||
LDAP_STAILQ_EMPTY( &c->c_ops ) ? "" : "x",
|
||||
LDAP_STAILQ_EMPTY( &c->c_pending_ops ) ? "" : "p",
|
||||
connection_state2str( c->c_conn_state ),
|
||||
c->c_sasl_bind_in_progress ? "S" : "",
|
||||
|
||||
mi->mi_ad_monitorConnectionAuthzDN->ad_cname.bv_val,
|
||||
c->c_dn.bv_len ? c->c_dn.bv_val : SLAPD_ANONYMOUS,
|
||||
c->c_sasl_bind_in_progress ? "S" : "" );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionMask, &bv, NULL );
|
||||
|
||||
/* NOTE: client connections leave the c_peer_* fields NULL */
|
||||
mi->mi_ad_monitorConnectionListener->ad_cname.bv_val,
|
||||
c->c_listener_url.bv_val,
|
||||
mi->mi_ad_monitorConnectionPeerDomain->ad_cname.bv_val,
|
||||
BER_BVISNULL( &c->c_peer_domain ) ? "unknown" : c->c_peer_domain.bv_val,
|
||||
mi->mi_ad_monitorConnectionLocalAddress->ad_cname.bv_val,
|
||||
BER_BVISNULL( &c->c_peer_name ) ? "unknown" : c->c_peer_name.bv_val,
|
||||
mi->mi_ad_monitorConnectionPeerAddress->ad_cname.bv_val,
|
||||
c->c_sock_name.bv_val,
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionAuthzDN,
|
||||
&c->c_dn, &c->c_ndn );
|
||||
|
||||
mi->mi_ad_monitorConnectionStartTime->ad_cname.bv_val,
|
||||
buf2,
|
||||
mi->mi_ad_monitorConnectionActivityTime->ad_cname.bv_val,
|
||||
buf3,
|
||||
/* NOTE: client connections leave the c_peer_* fields NULL */
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionListener,
|
||||
&c->c_listener_url, NULL );
|
||||
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
ctmbuf,
|
||||
mtmbuf );
|
||||
|
||||
e = str2entry( buf );
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionPeerDomain,
|
||||
BER_BVISNULL( &c->c_peer_domain ) ? &bv_unknown : &c->c_peer_domain,
|
||||
NULL );
|
||||
|
||||
if ( e == NULL) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_conn_create: "
|
||||
"unable to create entry "
|
||||
"\"cn=Connection %ld,%s\" entry\n",
|
||||
c->c_connid,
|
||||
ms->mss_dn.bv_val, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionPeerAddress,
|
||||
BER_BVISNULL( &c->c_peer_name ) ? &bv_unknown : &c->c_peer_name,
|
||||
NULL );
|
||||
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionLocalAddress,
|
||||
&c->c_sock_name, NULL );
|
||||
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionStartTime, &bv2, NULL );
|
||||
|
||||
attr_merge_one( e, mi->mi_ad_monitorConnectionActivityTime, &bv3, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
|
@ -186,6 +186,7 @@ monitor_subsys_database_init(
|
||||
slap_overinfo *oi = NULL;
|
||||
BackendInfo *bi, *bi2;
|
||||
Entry *e;
|
||||
struct berval bv;
|
||||
|
||||
i++;
|
||||
|
||||
@ -201,32 +202,12 @@ monitor_subsys_database_init(
|
||||
continue;
|
||||
}
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Database %d,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Database %d\n"
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
i,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
i,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
bi->bi_type,
|
||||
mi->mi_ad_monitorIsShadow->ad_cname.bv_val,
|
||||
SLAP_SHADOW( be ) ? slap_true_bv.bv_val : slap_false_bv.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ),
|
||||
"cn=Database %d", i );
|
||||
bv.bv_val = buf;
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_database_init: "
|
||||
@ -234,7 +215,13 @@ monitor_subsys_database_init(
|
||||
i, ms->mss_dn.bv_val, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
|
||||
ber_str2bv( bi->bi_type, 0, 0, &bv );
|
||||
attr_merge_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
attr_merge_one( e, mi->mi_ad_monitorIsShadow,
|
||||
SLAP_SHADOW( be ) ? (struct berval *)&slap_true_bv :
|
||||
(struct berval *)&slap_false_bv, NULL );
|
||||
|
||||
if ( SLAP_MONITOR( be ) ) {
|
||||
attr_merge( e, slap_schema.si_ad_monitorContext,
|
||||
be->be_suffix, be->be_nsuffix );
|
||||
@ -465,33 +452,12 @@ monitor_subsys_database_init(
|
||||
}
|
||||
assert( on2 != NULL );
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Overlay %d,cn=Database %d,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Overlay %d\n"
|
||||
"%s: %s\n"
|
||||
"seeAlso: cn=Overlay %d,%s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
o,
|
||||
i,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
o,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
on->on_bi.bi_type,
|
||||
j,
|
||||
ms_overlay->mss_dn.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e_overlay = str2entry( buf );
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "cn=Overlay %d", o );
|
||||
bv.bv_val = buf;
|
||||
|
||||
e_overlay = monitor_entry_stub( &e->e_name, &e->e_nname, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
|
||||
if ( e_overlay == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_database_init: "
|
||||
@ -500,6 +466,14 @@ monitor_subsys_database_init(
|
||||
o, i, ms->mss_dn.bv_val );
|
||||
return( -1 );
|
||||
}
|
||||
ber_str2bv( on->on_bi.bi_type, 0, 0, &bv );
|
||||
attr_merge_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "cn=Overlay %d,%s",
|
||||
j, ms_overlay->mss_dn.bv_val );
|
||||
bv.bv_val = buf;
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_seeAlso,
|
||||
&bv, NULL );
|
||||
|
||||
mp_overlay = monitor_entrypriv_create();
|
||||
if ( mp_overlay == NULL ) {
|
||||
|
@ -165,3 +165,54 @@ monitor_entrypriv_create( void )
|
||||
|
||||
return mp;
|
||||
}
|
||||
|
||||
Entry *
|
||||
monitor_entry_stub(
|
||||
struct berval *pdn,
|
||||
struct berval *pndn,
|
||||
struct berval *rdn,
|
||||
ObjectClass *oc,
|
||||
monitor_info_t *mi,
|
||||
struct berval *create,
|
||||
struct berval *modify
|
||||
)
|
||||
{
|
||||
AttributeDescription *nad = NULL;
|
||||
Entry *e;
|
||||
struct berval nat;
|
||||
char *ptr;
|
||||
const char *text;
|
||||
int rc;
|
||||
|
||||
nat = *rdn;
|
||||
ptr = strchr( nat.bv_val, '=' );
|
||||
nat.bv_len = ptr - nat.bv_val;
|
||||
rc = slap_bv2ad( &nat, &nad, &text );
|
||||
if ( rc )
|
||||
return NULL;
|
||||
|
||||
e = ch_calloc( 1, sizeof( Entry ));
|
||||
if ( e ) {
|
||||
struct berval nrdn;
|
||||
|
||||
rdnNormalize( 0, NULL, NULL, rdn, &nrdn, NULL );
|
||||
build_new_dn( &e->e_name, pdn, rdn, NULL );
|
||||
build_new_dn( &e->e_nname, pndn, &nrdn, NULL );
|
||||
nat.bv_val = ptr + 1;
|
||||
nat.bv_len = rdn->bv_len - ( nat.bv_val - rdn->bv_val );
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_objectClass,
|
||||
&oc->soc_cname, NULL );
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_structuralObjectClass,
|
||||
&oc->soc_cname, NULL );
|
||||
attr_merge_normalize_one( e, nad, &nat, NULL );
|
||||
attr_merge_one( e, slap_schema.si_ad_creatorsName, &mi->mi_creatorsName,
|
||||
&mi->mi_ncreatorsName );
|
||||
attr_merge_one( e, slap_schema.si_ad_modifiersName, &mi->mi_creatorsName,
|
||||
&mi->mi_ncreatorsName );
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_createTimestamp,
|
||||
create ? create : &mi->mi_startTime, NULL );
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_modifyTimestamp,
|
||||
modify ? modify : &mi->mi_startTime, NULL );
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
@ -1496,16 +1496,21 @@ monitor_back_db_open(
|
||||
{
|
||||
monitor_info_t *mi = (monitor_info_t *)be->be_private;
|
||||
struct monitor_subsys_t **ms;
|
||||
Entry *e, **ep;
|
||||
Entry *e, **ep, *root;
|
||||
monitor_entry_t *mp;
|
||||
int i;
|
||||
char buf[ BACKMONITOR_BUFSIZE ];
|
||||
struct berval bv;
|
||||
struct berval bv, rdn = BER_BVC(SLAPD_MONITOR_DN);
|
||||
struct tm *tms;
|
||||
#ifdef HAVE_GMTIME_R
|
||||
struct tm tm_buf;
|
||||
#endif
|
||||
static char tmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ];
|
||||
struct berval desc[] = {
|
||||
BER_BVC("This subtree contains monitoring/managing objects."),
|
||||
BER_BVC("This object contains information about this server."),
|
||||
BER_BVC("Most of the information is held in operational"
|
||||
" attributes, which must be explicitly requested."),
|
||||
BER_BVNULL };
|
||||
|
||||
assert( be_monitor != NULL );
|
||||
if ( be != be_monitor ) {
|
||||
@ -1542,35 +1547,18 @@ monitor_back_db_open(
|
||||
|
||||
if ( BER_BVISEMPTY( &be->be_rootdn ) ) {
|
||||
BER_BVSTR( &mi->mi_creatorsName, SLAPD_ANONYMOUS );
|
||||
BER_BVSTR( &mi->mi_ncreatorsName, SLAPD_ANONYMOUS );
|
||||
} else {
|
||||
mi->mi_creatorsName = be->be_rootdn;
|
||||
mi->mi_ncreatorsName = be->be_rootndn;
|
||||
}
|
||||
|
||||
/*
|
||||
* creates the "cn=Monitor" entry
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: %s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Monitor\n"
|
||||
"description: This subtree contains monitoring/managing objects.\n"
|
||||
"description: This object contains information about this server.\n"
|
||||
"description: Most of the information is held in operational"
|
||||
" attributes, which must be explicitly requested.\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
SLAPD_MONITOR_DN,
|
||||
mi->mi_oc_monitorServer->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorServer->soc_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
e = monitor_entry_stub( NULL, NULL, &rdn, mi->mi_oc_monitorServer, mi,
|
||||
NULL, NULL );
|
||||
|
||||
e = str2entry( buf );
|
||||
if ( e == NULL) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"unable to create \"%s\" entry\n",
|
||||
@ -1578,6 +1566,8 @@ monitor_back_db_open(
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
attr_merge_normalize( e, slap_schema.si_ad_description, desc, NULL );
|
||||
|
||||
bv.bv_val = strchr( (char *) Versionstr, '$' );
|
||||
if ( bv.bv_val != NULL ) {
|
||||
char *end;
|
||||
@ -1623,6 +1613,7 @@ monitor_back_db_open(
|
||||
SLAPD_MONITOR_DN, 0, 0 );
|
||||
return -1;
|
||||
}
|
||||
root = e;
|
||||
|
||||
/*
|
||||
* Create all the subsystem specific entries
|
||||
@ -1645,46 +1636,18 @@ monitor_back_db_open(
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
dn.bv_len += sizeof( SLAPD_MONITOR_DN ); /* 1 for the , */
|
||||
dn.bv_val = ch_malloc( dn.bv_len + 1 );
|
||||
strcpy( dn.bv_val , monitor_subsys[ i ]->mss_rdn.bv_val );
|
||||
strcat( dn.bv_val, "," SLAPD_MONITOR_DN );
|
||||
rc = dnPrettyNormal( NULL, &dn, &monitor_subsys[ i ]->mss_dn,
|
||||
&monitor_subsys[ i ]->mss_ndn, NULL );
|
||||
free( dn.bv_val );
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor DN \"%s\" is invalid\n",
|
||||
dn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
e = monitor_entry_stub( &root->e_name, &root->e_nname,
|
||||
&monitor_subsys[ i ]->mss_rdn, mi->mi_oc_monitorContainer, mi,
|
||||
NULL, NULL );
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: %s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
monitor_subsys[ i ]->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorContainer->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorContainer->soc_cname.bv_val,
|
||||
monitor_subsys[ i ]->mss_name,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
|
||||
if ( e == NULL) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"unable to create \"%s\" entry\n",
|
||||
monitor_subsys[ i ]->mss_dn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
monitor_subsys[i]->mss_dn = e->e_name;
|
||||
monitor_subsys[i]->mss_ndn = e->e_nname;
|
||||
|
||||
if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_desc[ 0 ] ) ) {
|
||||
attr_merge_normalize( e, slap_schema.si_ad_description,
|
||||
@ -1860,14 +1823,6 @@ monitor_back_db_destroy(
|
||||
if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_rdn ) ) {
|
||||
ch_free( monitor_subsys[ i ]->mss_rdn.bv_val );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_dn ) ) {
|
||||
ch_free( monitor_subsys[ i ]->mss_dn.bv_val );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_ndn ) ) {
|
||||
ch_free( monitor_subsys[ i ]->mss_ndn.bv_val );
|
||||
}
|
||||
}
|
||||
|
||||
ch_free( monitor_subsys );
|
||||
|
@ -69,32 +69,14 @@ monitor_subsys_listener_init(
|
||||
for ( i = 0; l[ i ]; i++ ) {
|
||||
char buf[ BACKMONITOR_BUFSIZE ];
|
||||
Entry *e;
|
||||
struct berval bv;
|
||||
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ),
|
||||
"cn=Listener %d", i );
|
||||
bv.bv_val = buf;
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Listener %d,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Listener %d\n"
|
||||
"%s: %s\n"
|
||||
"labeledURI: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
i,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
i,
|
||||
mi->mi_ad_monitorConnectionLocalAddress->ad_cname.bv_val,
|
||||
l[ i ]->sl_name.bv_val,
|
||||
l[ i ]->sl_url.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_listener_init: "
|
||||
@ -103,6 +85,12 @@ monitor_subsys_listener_init(
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionLocalAddress,
|
||||
&l[ i ]->sl_name, NULL );
|
||||
|
||||
attr_merge_normalize_one( e, slap_schema.si_ad_labeledURI,
|
||||
&l[ i ]->sl_url, NULL );
|
||||
|
||||
#ifdef HAVE_TLS
|
||||
if ( l[ i ]->sl_is_tls ) {
|
||||
struct berval bv;
|
||||
|
@ -97,34 +97,14 @@ monitor_subsys_ops_init(
|
||||
for ( i = 0; i < SLAP_OP_LAST; i++ ) {
|
||||
struct berval rdn;
|
||||
Entry *e;
|
||||
struct berval bv;
|
||||
|
||||
/*
|
||||
* Initiated ops
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: %s,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: %s\n"
|
||||
"%s: 0\n"
|
||||
"%s: 0\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
monitor_op[ i ].rdn.bv_val,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorOperation->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorOperation->soc_cname.bv_val,
|
||||
&monitor_op[ i ].rdn.bv_val[ STRLENOF( "cn=" ) ],
|
||||
mi->mi_ad_monitorOpInitiated->ad_cname.bv_val,
|
||||
mi->mi_ad_monitorOpCompleted->ad_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &monitor_op[i].rdn,
|
||||
mi->mi_oc_monitorOperation, mi, NULL, NULL );
|
||||
|
||||
e = str2entry( buf );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_ops_init: "
|
||||
@ -133,7 +113,11 @@ monitor_subsys_ops_init(
|
||||
ms->mss_ndn.bv_val, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
|
||||
BER_BVSTR( &bv, "0" );
|
||||
attr_merge_one( e, mi->mi_ad_monitorOpInitiated, &bv, NULL );
|
||||
attr_merge_one( e, mi->mi_ad_monitorOpCompleted, &bv, NULL );
|
||||
|
||||
/* steal normalized RDN */
|
||||
dnRdn( &e->e_nname, &rdn );
|
||||
ber_dupbv( &monitor_op[ i ].nrdn, &rdn );
|
||||
|
@ -75,32 +75,10 @@ monitor_subsys_overlay_init(
|
||||
Entry *e;
|
||||
BackendDB *be;
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Overlay %d,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Overlay %d\n"
|
||||
"%s: %s\n"
|
||||
"%s: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
i,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
i,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
on->on_bi.bi_type,
|
||||
mi->mi_ad_monitorRuntimeConfig->ad_cname.bv_val,
|
||||
on->on_bi.bi_cf_ocs ? "TRUE" : "FALSE",
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "cn=Overlay %d", i );
|
||||
bv.bv_val = buf;
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_overlay_init: "
|
||||
@ -108,8 +86,12 @@ monitor_subsys_overlay_init(
|
||||
i, ms->mss_ndn.bv_val, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
ber_str2bv( on->on_bi.bi_type, 0, 0, &bv );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorRuntimeConfig,
|
||||
on->on_bi.bi_cf_ocs ? (struct berval *)&slap_true_bv :
|
||||
(struct berval *)&slap_false_bv, NULL );
|
||||
|
||||
attr_merge_normalize_one( e_overlay, mi->mi_ad_monitoredInfo,
|
||||
&bv, NULL );
|
||||
|
||||
|
@ -116,6 +116,16 @@ extern monitor_entry_t *
|
||||
monitor_entrypriv_create LDAP_P((
|
||||
void ));
|
||||
|
||||
extern Entry *
|
||||
monitor_entry_stub LDAP_P((
|
||||
struct berval *pdn,
|
||||
struct berval *pndn,
|
||||
struct berval *rdn,
|
||||
ObjectClass *oc,
|
||||
monitor_info_t *mi,
|
||||
struct berval *create,
|
||||
struct berval *modify));
|
||||
|
||||
/*
|
||||
* init
|
||||
*/
|
||||
|
@ -90,26 +90,8 @@ monitor_subsys_rww_init(
|
||||
struct berval nrdn, bv;
|
||||
Entry *e;
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: %s,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
monitor_rww[ i ].rdn.bv_val,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
&monitor_rww[ i ].rdn.bv_val[ STRLENOF( "cn=" ) ],
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &monitor_rww[i].rdn,
|
||||
mi->mi_oc_monitorCounterObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_rww_init: "
|
||||
@ -123,7 +105,7 @@ monitor_subsys_rww_init(
|
||||
ber_dupbv( &monitor_rww[ i ].nrdn, &nrdn );
|
||||
|
||||
BER_BVSTR( &bv, "0" );
|
||||
attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
|
@ -93,26 +93,10 @@ monitor_subsys_sent_init(
|
||||
struct berval nrdn, bv;
|
||||
Entry *e;
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: %s,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
monitor_sent[ i ].rdn.bv_val,
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitorCounterObject->soc_cname.bv_val,
|
||||
&monitor_sent[ i ].rdn.bv_val[ STRLENOF( "cn=" ) ],
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn,
|
||||
&monitor_sent[i].rdn, mi->mi_oc_monitorCounterObject,
|
||||
mi, NULL, NULL );
|
||||
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_sent_init: "
|
||||
@ -127,7 +111,7 @@ monitor_subsys_sent_init(
|
||||
ber_dupbv( &monitor_sent[ i ].nrdn, &nrdn );
|
||||
|
||||
BER_BVSTR( &bv, "0" );
|
||||
attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
|
@ -48,6 +48,7 @@ monitor_subsys_thread_init(
|
||||
monitor_entry_t *mp;
|
||||
Entry *e, **ep, *e_thread;
|
||||
static char buf[ BACKMONITOR_BUFSIZE ];
|
||||
struct berval bv;
|
||||
|
||||
ms->mss_update = monitor_subsys_thread_update;
|
||||
|
||||
@ -68,27 +69,9 @@ monitor_subsys_thread_init(
|
||||
/*
|
||||
* Max
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Max,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Max\n"
|
||||
"%s: %d\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
connection_pool_max,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Max" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_thread_init: "
|
||||
@ -96,6 +79,9 @@ monitor_subsys_thread_init(
|
||||
ms->mss_ndn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
bv.bv_len = snprintf( buf, sizeof( buf ), "%d", connection_pool_max );
|
||||
bv.bv_val = buf;
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
@ -120,26 +106,9 @@ monitor_subsys_thread_init(
|
||||
/*
|
||||
* Backload
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Backload,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Backload\n"
|
||||
"%s: 0\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Backload" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_thread_init: "
|
||||
@ -147,6 +116,8 @@ monitor_subsys_thread_init(
|
||||
ms->mss_ndn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
BER_BVSTR( &bv, "0" );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
@ -171,26 +142,9 @@ monitor_subsys_thread_init(
|
||||
/*
|
||||
* Runqueue runners
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Runqueue,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Runqueue\n"
|
||||
"%s: 0\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_ad_monitoredInfo->ad_cname.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Runqueue" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_thread_init: "
|
||||
@ -198,6 +152,8 @@ monitor_subsys_thread_init(
|
||||
ms->mss_ndn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
BER_BVSTR( &bv, "0" );
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
|
@ -47,6 +47,7 @@ monitor_subsys_time_init(
|
||||
Entry *e, **ep, *e_time;
|
||||
monitor_entry_t *mp;
|
||||
char buf[ BACKMONITOR_BUFSIZE ];
|
||||
struct berval bv;
|
||||
|
||||
assert( be != NULL );
|
||||
|
||||
@ -67,27 +68,9 @@ monitor_subsys_time_init(
|
||||
mp->mp_children = NULL;
|
||||
ep = &mp->mp_children;
|
||||
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Start,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Start\n"
|
||||
"%s: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_ad_monitorTimestamp->ad_cname.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Start" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_time_init: "
|
||||
@ -95,6 +78,8 @@ monitor_subsys_time_init(
|
||||
ms->mss_ndn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorTimestamp,
|
||||
&mi->mi_startTime, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
@ -119,27 +104,9 @@ monitor_subsys_time_init(
|
||||
/*
|
||||
* Current
|
||||
*/
|
||||
snprintf( buf, sizeof( buf ),
|
||||
"dn: cn=Current,%s\n"
|
||||
"objectClass: %s\n"
|
||||
"structuralObjectClass: %s\n"
|
||||
"cn: Current\n"
|
||||
"%s: %s\n"
|
||||
"creatorsName: %s\n"
|
||||
"modifiersName: %s\n"
|
||||
"createTimestamp: %s\n"
|
||||
"modifyTimestamp: %s\n",
|
||||
ms->mss_dn.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_oc_monitoredObject->soc_cname.bv_val,
|
||||
mi->mi_ad_monitorTimestamp->ad_cname.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_creatorsName.bv_val,
|
||||
mi->mi_startTime.bv_val,
|
||||
mi->mi_startTime.bv_val );
|
||||
|
||||
e = str2entry( buf );
|
||||
BER_BVSTR( &bv, "cn=Current" );
|
||||
e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv,
|
||||
mi->mi_oc_monitoredObject, mi, NULL, NULL );
|
||||
if ( e == NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"monitor_subsys_time_init: "
|
||||
@ -147,6 +114,8 @@ monitor_subsys_time_init(
|
||||
ms->mss_ndn.bv_val, 0, 0 );
|
||||
return( -1 );
|
||||
}
|
||||
attr_merge_normalize_one( e, mi->mi_ad_monitorTimestamp,
|
||||
&mi->mi_startTime, NULL );
|
||||
|
||||
mp = monitor_entrypriv_create();
|
||||
if ( mp == NULL ) {
|
||||
|
Loading…
Reference in New Issue
Block a user