X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fexim.c;h=90ecd0629631b9dcfdb7186117a17d935b45ff48;hb=8829633f58b90fda03309f65e6c099ed031005e3;hp=670319b989db251032d98d02ae12564e4d25eff5;hpb=e12f8c3248614077e92c7ba23386e1f36d570c8f;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/exim.c b/src/src/exim.c index 670319b98..90ecd0629 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -725,6 +725,8 @@ Returns: nothing static void show_whats_supported(FILE *f) { + auth_info *authi; + #ifdef DB_VERSION_STRING fprintf(f, "Berkeley DB: %s\n", DB_VERSION_STRING); #elif defined(BTREEVERSION) && defined(HASHVERSION) @@ -814,7 +816,7 @@ fprintf(f, "Lookups (built-in):"); fprintf(f, " cdb"); #endif #if defined(LOOKUP_DBM) && LOOKUP_DBM!=2 - fprintf(f, " dbm dbmnz"); + fprintf(f, " dbm dbmjz dbmnz"); #endif #if defined(LOOKUP_DNSDB) && LOOKUP_DNSDB!=2 fprintf(f, " dnsdb"); @@ -867,6 +869,12 @@ fprintf(f, "Authenticators:"); #ifdef AUTH_DOVECOT fprintf(f, " dovecot"); #endif +#ifdef AUTH_GSASL + fprintf(f, " gsasl"); +#endif +#ifdef AUTH_HEIMDAL_GSSAPI + fprintf(f, " heimdal_gssapi"); +#endif #ifdef AUTH_PLAINTEXT fprintf(f, " plaintext"); #endif @@ -962,9 +970,11 @@ DEBUG(D_any) do { tls_version_report(f); #endif -#ifdef AUTH_CYRUS_SASL - auth_cyrus_sasl_version_report(f); -#endif + for (authi = auths_available; *authi->driver_name != '\0'; ++authi) { + if (authi->version_report) { + (*authi->version_report)(f); + } + } fprintf(f, "Library version: PCRE: Compile: %d.%d%s\n" " Runtime: %s\n", @@ -973,7 +983,9 @@ DEBUG(D_any) do { * unless its an ancient version of PCRE in which case it * is not defined */ #ifdef PCRE_PRERELEASE - PCRE_PRERELEASE "", +# define STRINGIFY(x) #x + STRINGIFY(PCRE_PRERELEASE) "", +# undef STRINGIFY #else "", #endif @@ -3444,6 +3456,17 @@ if ((filter_test & FTEST_USER) != 0) } } +/* Initialise lookup_list +If debugging, already called above via version reporting. +In either case, we initialise the list of available lookups while running +as root. All dynamically modules are loaded from a directory which is +hard-coded into the binary and is code which, if not a module, would be +part of Exim already. Ability to modify the content of the directory +is equivalent to the ability to modify a setuid binary! + +This needs to happen before we read the main configuration. */ +init_lookup_list(); + /* Read the main runtime configuration data; this gives up if there is a failure. It leaves the configuration file open so that the subsequent configuration data for delivery can be read if needed. */ @@ -3632,13 +3655,6 @@ if (opt_perl_at_start && opt_perl_startup != NULL) } #endif /* EXIM_PERL */ -/* Initialise lookup_list -If debugging, already called above via version reporting. -This does mean that debugging causes the list to be initialised while root. -This *should* be harmless -- all modules are loaded from a fixed dir and -it's code that would, if not a module, be part of Exim already. */ -init_lookup_list(); - /* Log the arguments of the call if the configuration file said so. This is a debugging feature for finding out what arguments certain MUAs actually use. Don't attempt it if logging is disabled, or if listing variables or if