/* listener.c - deals with listener subsystem */
/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
/*
Entry *e, *e_listener, *e_tmp;
int i;
struct monitorentrypriv *mp;
- struct berval bv[2];
Listener **l;
assert( be != NULL );
&monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn,
&e_listener ) ) {
#ifdef NEW_LOGGING
- LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
+ LDAP_LOG( OPERATION, CRIT,
"monitor_subsys_listener_init: "
"unable to get entry '%s'\n",
- monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val ));
+ monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val, 0, 0 );
#else
Debug( LDAP_DEBUG_ANY,
"monitor_subsys_listener_init: "
if ( ( l = slapd_get_listeners() ) == NULL ) {
#ifdef NEW_LOGGING
- LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
+ LDAP_LOG( OPERATION, CRIT,
"monitor_subsys_listener_init: "
- "unable to get listeners\n" ));
+ "unable to get listeners\n", 0, 0, 0 );
#else
Debug( LDAP_DEBUG_ANY,
"monitor_subsys_listener_init: "
}
e_tmp = NULL;
- for ( i = 0; l[i]; i++ ) {
+ for ( i = 0; l[i]; i++ );
+ for ( ; i--; ) {
char buf[1024];
snprintf( buf, sizeof( buf ),
- "dn: cn=%s,%s\n"
+ "dn: cn=Listener %d,%s\n"
SLAPD_MONITOR_OBJECTCLASSES
- "cn: %s\n",
- l[i]->sl_name,
+ "cn: Listener %d\n"
+ "description: %s\n"
+ "labeledURI: %s",
+ i,
monitor_subsys[SLAPD_MONITOR_LISTENER].mss_dn.bv_val,
- l[i]->sl_name );
+ i,
+ l[i]->sl_name.bv_val,
+ l[i]->sl_url.bv_val );
e = str2entry( buf );
if ( e == NULL ) {
#ifdef NEW_LOGGING
- LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
+ LDAP_LOG( OPERATION, CRIT,
"monitor_subsys_listener_init: "
- "unable to create entry 'cn=%s,%s'\n",
- l[i]->sl_name,
- monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val ));
+ "unable to create entry 'cn=Listener, %d,%s'\n",
+ i, monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val, 0 );
#else
Debug( LDAP_DEBUG_ANY,
"monitor_subsys_listener_init: "
- "unable to create entry 'cn=%s,%s'\n%s",
- l[i]->sl_name,
+ "unable to create entry 'cn=Listener %d,%s'\n%s",
+ i,
monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val,
"" );
#endif
return( -1 );
}
-
- bv[1].bv_val = NULL;
- bv[0].bv_val = l[i]->sl_url;
- bv[0].bv_len = strlen( bv[0].bv_val );
- attr_merge( e, monitor_ad_desc, bv );
-
+
+#ifdef HAVE_TLS
+ if ( l[i]->sl_is_tls ) {
+ struct berval bv[2];
+ bv[1].bv_val = NULL;
+ bv[0].bv_val = "TLS";
+ bv[0].bv_len = sizeof("TLS")-1;
+ attr_merge( e, monitor_ad_desc, bv );
+ }
+#endif /* HAVE_TLS */
+#ifdef LDAP_CONNECTIONLESS
+ if ( l[i]->sl_is_udp ) {
+ struct berval bv[2];
+ bv[1].bv_val = NULL;
+ bv[0].bv_val = "UDP";
+ bv[0].bv_len = sizeof("UDP")-1;
+ attr_merge( e, monitor_ad_desc, bv );
+ }
+#endif /* HAVE_TLS */
+
mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
e->e_private = ( void * )mp;
mp->mp_next = e_tmp;
if ( monitor_cache_add( mi, e ) ) {
#ifdef NEW_LOGGING
- LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
+ LDAP_LOG( OPERATION, CRIT,
"monitor_subsys_listener_init: "
- "unable to add entry 'cn=%s,%s'\n",
- l[i]->sl_name,
- monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val ));
+ "unable to add entry 'cn=Listener %d,%s'\n",
+ i, monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val, 0 );
#else
Debug( LDAP_DEBUG_ANY,
"monitor_subsys_listener_init: "
- "unable to add entry 'cn=%s,%s'\n",
- l[i]->sl_name,
+ "unable to add entry 'cn=Listener %d,%s'\n",
+ i,
monitor_subsys[SLAPD_MONITOR_LISTENER].mss_ndn.bv_val,
0 );
#endif