/*++ /* NAME /* postconf_other 3 /* SUMMARY /* support for miscellaneous information categories /* SYNOPSIS /* #include /* /* void pcf_show_maps() /* /* void pcf_show_locks() /* /* void pcf_show_sasl(mode) /* int mode; /* /* void pcf_show_tls(what) /* const char *what; /* DESCRIPTION /* pcf_show_maps() lists the available map (lookup table) /* types. /* /* pcf_show_locks() lists the available mailbox lock types. /* /* pcf_show_sasl() shows the available SASL authentication /* plugin types. /* /* pcf_show_tls() reports the "compile-version" or "run-version" /* of the TLS library, or the supported public-key algorithms. /* /* Arguments: /* .IP mode /* Show server information if the PCF_SHOW_SASL_SERV flag is /* set, otherwise show client information. /* .IP what /* One of the literals "compile-version", "run-version" or /* "public-key-algorithms". /* DIAGNOSTICS /* Problems are reported to the standard error stream. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /* /* Wietse Venema /* Google, Inc. /* 111 8th Avenue /* New York, NY 10011, USA /*--*/ /* System library. */ #include /* Utility library. */ #include #include #include #include /* Global library. */ #include /* XSASL library. */ #include /* TLS library. */ #include /* Application-specific. */ #include /* pcf_show_maps - show available maps */ void pcf_show_maps(void) { ARGV *maps_argv; int i; maps_argv = dict_mapnames(); for (i = 0; i < maps_argv->argc; i++) vstream_printf("%s\n", maps_argv->argv[i]); argv_free(maps_argv); } /* pcf_show_locks - show available mailbox locking methods */ void pcf_show_locks(void) { ARGV *locks_argv; int i; locks_argv = mbox_lock_names(); for (i = 0; i < locks_argv->argc; i++) vstream_printf("%s\n", locks_argv->argv[i]); argv_free(locks_argv); } /* pcf_show_sasl - show SASL plug-in types */ void pcf_show_sasl(int what) { ARGV *sasl_argv; int i; sasl_argv = (what & PCF_SHOW_SASL_SERV) ? xsasl_server_types() : xsasl_client_types(); for (i = 0; i < sasl_argv->argc; i++) vstream_printf("%s\n", sasl_argv->argv[i]); argv_free(sasl_argv); } /* pcf_show_tls - show TLS support */ void pcf_show_tls(const char *what) { #ifdef USE_TLS if (strcmp(what, "compile-version") == 0) vstream_printf("%s\n", tls_compile_version()); else if (strcmp(what, "run-version") == 0) vstream_printf("%s\n", tls_run_version()); else if (strcmp(what, "public-key-algorithms") == 0) { const char **cpp; for (cpp = tls_pkey_algorithms(); *cpp; cpp++) vstream_printf("%s\n", *cpp); } else { msg_warn("unknown 'postconf -T' mode: %s", what); exit(1); } #endif /* USE_TLS */ }