]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/conn.c
Merge remote-tracking branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
[openldap] / servers / slapd / back-monitor / conn.c
index 064aeb28e658cfda2902712bcea601d43cfa022d..28fc176b87bc72cdef6f314b2a5dc2451e3b808e 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * 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, &current_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 " );