]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/main.c
re-enable "-d '?'" as a means to list what loglevels are available (ITS#4666)
[openldap] / servers / slapd / main.c
index 5642c1b86c69e8fde77886ac1c205d5961e628bd..8b1ee9c9c6300cd01aef7a657f6ef554e21be8e5 100644 (file)
@@ -501,6 +501,11 @@ int main( int argc, char **argv )
                case 'd': {     /* set debug level and 'do not detach' flag */
                        int     level = 0;
 
+                       if ( strcmp( optarg, "?" ) == 0 ) {
+                               rc = loglevel_print( stdout );
+                               goto destroy;
+                       }
+
                        no_detach = 1;
                        if ( parse_debug_level( optarg, &level, &debug_unknowns ) ) {
                                goto destroy;
@@ -557,6 +562,11 @@ int main( int argc, char **argv )
                }
 
                case 's':       /* set syslog level */
+                       if ( strcmp( optarg, "?" ) == 0 ) {
+                               rc = loglevel_print( stdout );
+                               goto destroy;
+                       }
+
                        if ( parse_debug_level( optarg, &ldap_syslog, &syslog_unknowns ) ) {
                                goto destroy;
                        }
@@ -959,16 +969,15 @@ stop:
        lutil_passwd_destroy();
 
 #ifdef HAVE_TLS
-       /* Setting it to itself decreases refcount, allowing it to be freed
-        * when the LD is freed.
-        */
        if ( slap_tls_ld ) {
-               ldap_pvt_tls_set_option( slap_tls_ld, LDAP_OPT_X_TLS_CTX, slap_tls_ctx );
-               ldap_unbind( slap_tls_ld );
+               SSL_CTX_free( slap_tls_ctx );
+               ldap_unbind_ext( slap_tls_ld, NULL, NULL );
        }
        ldap_pvt_tls_destroy();
 #endif
 
+       slap_sasl_regexp_destroy();
+
        if ( slapd_pid_file_unlink ) {
                unlink( slapd_pid_file );
        }