From 40cabdc0bcfb66e45aba3f7422fc914ca2c4a3bd Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 14 Sep 2006 19:55:52 +0000 Subject: [PATCH] handle errors --- servers/slapd/back-monitor/thread.c | 40 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/servers/slapd/back-monitor/thread.c b/servers/slapd/back-monitor/thread.c index a7dbb5920a..5898070a62 100644 --- a/servers/slapd/back-monitor/thread.c +++ b/servers/slapd/back-monitor/thread.c @@ -129,13 +129,19 @@ monitor_subsys_thread_init( break; case LDAP_PVT_THREAD_POOL_PARAM_STATE: - ldap_pvt_thread_pool_query( &connection_pool, - mt[ i ].param, (void *)&state ); - ber_str2bv( state, 0, 0, &bv ); + if ( ldap_pvt_thread_pool_query( &connection_pool, + mt[ i ].param, (void *)&state ) == 0 ) + { + ber_str2bv( state, 0, 0, &bv ); + + } else { + BER_BVSTR( &bv, "unknown" ); + } break; default: - ldap_pvt_thread_pool_query( &connection_pool, + /* NOTE: in case of error, it'll be set to -1 */ + (void)ldap_pvt_thread_pool_query( &connection_pool, mt[ i ].param, (void *)&count ); bv.bv_val = buf; bv.bv_len = snprintf( buf, sizeof( buf ), "%d", count ); @@ -276,25 +282,27 @@ monitor_subsys_thread_update( if ( a == NULL ) { return rs->sr_err = LDAP_OTHER; } - ldap_pvt_thread_pool_query( &connection_pool, - mt[ i ].param, (void *)&state ); - ber_str2bv( state, 0, 0, &bv ); - ber_bvreplace( &a->a_vals[ 0 ], &bv ); + if ( ldap_pvt_thread_pool_query( &connection_pool, + mt[ i ].param, (void *)&state ) == 0 ) + { + ber_str2bv( state, 0, 0, &bv ); + ber_bvreplace( &a->a_vals[ 0 ], &bv ); + } break; default: if ( a == NULL ) { return rs->sr_err = LDAP_OTHER; } - ldap_pvt_thread_pool_query( &connection_pool, - mt[ i ].param, (void *)&count ); - bv.bv_val = buf; - bv.bv_len = snprintf( buf, sizeof( buf ), "%d", count ); - if ( bv.bv_len >= sizeof( buf ) ) { - /* FIXME? */ - break; + if ( ldap_pvt_thread_pool_query( &connection_pool, + mt[ i ].param, (void *)&count ) == 0 ) + { + bv.bv_val = buf; + bv.bv_len = snprintf( buf, sizeof( buf ), "%d", count ); + if ( bv.bv_len < sizeof( buf ) ) { + ber_bvreplace( &a->a_vals[ 0 ], &bv ); + } } - ber_bvreplace( &a->a_vals[ 0 ], &bv ); break; } -- 2.39.5