]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/listener.c
Fix LBER_ERROR vs. -1 confusion.
[openldap] / servers / slapd / back-monitor / listener.c
index d9c4cfa5d2534951f50db726b00bf8a60b80f48e..71879643f713cccbba70a1cc37039dd4ccb3cbe9 100644 (file)
@@ -1,6 +1,6 @@
 /* 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
  */
 /*
@@ -47,7 +47,6 @@ monitor_subsys_listener_init(
        Entry                   *e, *e_listener, *e_tmp;
        int                     i;
        struct monitorentrypriv *mp;
-       struct berval           bv[2];
        Listener                **l;
 
        assert( be != NULL );
@@ -59,10 +58,10 @@ monitor_subsys_listener_init(
                                &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: "
@@ -75,9 +74,9 @@ 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: "
@@ -87,41 +86,59 @@ 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;
@@ -132,16 +149,15 @@ monitor_subsys_listener_init(
 
                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