X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-monitor%2Fconn.c;h=28fc176b87bc72cdef6f314b2a5dc2451e3b808e;hb=6549cfc7d09511de67e113d602c4071599127e2c;hp=064aeb28e658cfda2902712bcea601d43cfa022d;hpb=fcf97e84486e1159c0f57114e3b130cf49d7f89d;p=openldap diff --git a/servers/slapd/back-monitor/conn.c b/servers/slapd/back-monitor/conn.c index 064aeb28e6..28fc176b87 100644 --- a/servers/slapd/back-monitor/conn.c +++ b/servers/slapd/back-monitor/conn.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2001-2009 The OpenLDAP Foundation. + * Copyright 2001-2013 The OpenLDAP Foundation. * Portions Copyright 2001-2003 Pierangelo Masarati. * All rights reserved. * @@ -77,7 +77,7 @@ monitor_subsys_conn_init( */ BER_BVSTR( &bv, "cn=Max File Descriptors" ); e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv, - mi->mi_oc_monitorCounterObject, mi, NULL, NULL ); + mi->mi_oc_monitorCounterObject, NULL, NULL ); if ( e == NULL ) { Debug( LDAP_DEBUG_ANY, @@ -94,7 +94,7 @@ monitor_subsys_conn_init( } else { BER_BVSTR( &bv, "0" ); } - attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv ); + attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL ); mp = monitor_entrypriv_create(); if ( mp == NULL ) { @@ -122,7 +122,7 @@ monitor_subsys_conn_init( */ BER_BVSTR( &bv, "cn=Total" ); e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv, - mi->mi_oc_monitorCounterObject, mi, NULL, NULL ); + mi->mi_oc_monitorCounterObject, NULL, NULL ); if ( e == NULL ) { Debug( LDAP_DEBUG_ANY, @@ -133,7 +133,7 @@ monitor_subsys_conn_init( } BER_BVSTR( &bv, "-1" ); - attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv ); + attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL ); mp = monitor_entrypriv_create(); if ( mp == NULL ) { @@ -161,7 +161,7 @@ monitor_subsys_conn_init( */ BER_BVSTR( &bv, "cn=Current" ); e = monitor_entry_stub( &ms->mss_dn, &ms->mss_ndn, &bv, - mi->mi_oc_monitorCounterObject, mi, NULL, NULL ); + mi->mi_oc_monitorCounterObject, NULL, NULL ); if ( e == NULL ) { Debug( LDAP_DEBUG_ANY, @@ -172,7 +172,7 @@ monitor_subsys_conn_init( } BER_BVSTR( &bv, "0" ); - attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv ); + attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL ); mp = monitor_entrypriv_create(); if ( mp == NULL ) { @@ -223,7 +223,7 @@ monitor_subsys_conn_update( } else if ( dn_match( &rdn, ¤t_bv ) ) { Connection *c; - int connindex; + ber_socket_t connindex; for ( n = 0, c = connection_first( &connindex ); c != NULL; @@ -266,78 +266,33 @@ conn_create( monitor_subsys_t *ms ) { monitor_entry_t *mp; - struct tm *tm; + 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, ctmbv, mtmbv; struct berval bv_unknown= BER_BVC("unknown"); Entry *e; -#ifdef HACK_LOCAL_TIME - char ctmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ]; - char mtmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ]; -#endif -#ifdef HAVE_GMTIME_R - struct tm tm_buf; -#endif /* HAVE_GMTIME_R */ - assert( c != NULL ); assert( ep != NULL ); -#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 - tm = localtime_r( &c->c_starttime, &tm_buf ); -# else - tm = localtime( &c->c_starttime ); -# endif - ctmbv.bv_len = lutil_localtime( ctmbuf, sizeof( ctmbuf ), tm, -timezone ); - ctmbv.bv_val = ctmbuf; -#else /* !HACK_LOCAL_TIME */ - 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 - 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 + ldap_pvt_gmtime( &c->c_starttime, &tm ); + + ctmbv.bv_len = lutil_gentime( buf2, sizeof( buf2 ), &tm ); + ctmbv.bv_val = buf2; + + ldap_pvt_gmtime( &c->c_activitytime, &tm ); + mtmbv.bv_len = lutil_gentime( buf3, sizeof( buf3 ), &tm ); + mtmbv.bv_val = buf3; 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 ); + mi->mi_oc_monitorConnection, &ctmbv, &mtmbv ); if ( e == NULL) { Debug( LDAP_DEBUG_ANY, @@ -398,7 +353,7 @@ conn_create( attr_merge_one( e, mi->mi_ad_monitorConnectionNumber, &bv, NULL ); bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", (long) c->c_protocol ); - attr_merge_one( e, mi->mi_ad_monitorConnectionProtocol, &bv, NULL ); + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionProtocol, &bv, NULL ); bv.bv_len = snprintf( buf, sizeof( buf ), "%ld", c->c_n_ops_received ); attr_merge_one( e, mi->mi_ad_monitorConnectionOpsReceived, &bv, NULL ); @@ -428,31 +383,31 @@ conn_create( LDAP_STAILQ_EMPTY( &c->c_pending_ops ) ? "" : "p", connection_state2str( c->c_conn_state ), c->c_sasl_bind_in_progress ? "S" : "" ); - attr_merge_one( e, mi->mi_ad_monitorConnectionMask, &bv, NULL ); + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionMask, &bv, NULL ); attr_merge_one( e, mi->mi_ad_monitorConnectionAuthzDN, &c->c_dn, &c->c_ndn ); /* NOTE: client connections leave the c_peer_* fields NULL */ assert( !BER_BVISNULL( &c->c_listener_url ) ); - attr_merge_one( e, mi->mi_ad_monitorConnectionListener, + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionListener, &c->c_listener_url, NULL ); - attr_merge_one( e, mi->mi_ad_monitorConnectionPeerDomain, + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionPeerDomain, BER_BVISNULL( &c->c_peer_domain ) ? &bv_unknown : &c->c_peer_domain, NULL ); - attr_merge_one( e, mi->mi_ad_monitorConnectionPeerAddress, + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionPeerAddress, BER_BVISNULL( &c->c_peer_name ) ? &bv_unknown : &c->c_peer_name, NULL ); assert( !BER_BVISNULL( &c->c_sock_name ) ); - attr_merge_one( e, mi->mi_ad_monitorConnectionLocalAddress, + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionLocalAddress, &c->c_sock_name, NULL ); - attr_merge_one( e, mi->mi_ad_monitorConnectionStartTime, &bv2, NULL ); + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionStartTime, &ctmbv, NULL ); - attr_merge_one( e, mi->mi_ad_monitorConnectionActivityTime, &bv3, NULL ); + attr_merge_normalize_one( e, mi->mi_ad_monitorConnectionActivityTime, &mtmbv, NULL ); mp = monitor_entrypriv_create(); if ( mp == NULL ) { @@ -490,7 +445,7 @@ monitor_subsys_conn_create( if ( ndn == NULL ) { Connection *c; - int connindex; + ber_socket_t connindex; Entry *e = NULL, *e_tmp = NULL; @@ -526,7 +481,7 @@ monitor_subsys_conn_create( } else { Connection *c; - int connindex; + ber_socket_t connindex; unsigned long connid; char *next = NULL; static struct berval nconn_bv = BER_BVC( "cn=connection " );