Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8301:d46579bb7a3c HEAD
Print a help message about authentication at startup until the first successful authentication.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 19 Oct 2008 13:32:01 +0300 |
parents | 9d963e3bbe65 |
children | 0db37acdc59f |
files | src/master/auth-process.c src/master/common.h src/master/main.c |
diffstat | 3 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/master/auth-process.c Sun Oct 19 02:07:34 2008 +0300 +++ b/src/master/auth-process.c Sun Oct 19 13:32:01 2008 +0300 @@ -19,6 +19,7 @@ #include <stdlib.h> #include <unistd.h> +#include <fcntl.h> #include <pwd.h> #include <syslog.h> @@ -125,6 +126,17 @@ return FALSE; } + if (!auth_success_written) { + int fd; + + fd = creat(AUTH_SUCCESS_PATH, 0666); + if (fd == -1) + i_error("creat(%s) failed: %m", AUTH_SUCCESS_PATH); + else + (void)close(fd); + auth_success_written = TRUE; + } + auth_master_callback(list[1], list + 2, request); hash_remove(process->requests, POINTER_CAST(id)); return TRUE;
--- a/src/master/common.h Sun Oct 19 02:07:34 2008 +0300 +++ b/src/master/common.h Sun Oct 19 13:32:01 2008 +0300 @@ -6,12 +6,15 @@ #include "lib.h" #include "master-settings.h" +#define AUTH_SUCCESS_PATH PKG_STATEDIR"/auth-success" + extern struct ioloop *ioloop; extern int null_fd, inetd_login_fd; extern uid_t master_uid; extern char program_path[]; extern char ssl_manual_key_password[]; extern const char *env_tz; +extern bool auth_success_written; #ifdef DEBUG extern bool gdb; #endif
--- a/src/master/main.c Sun Oct 19 02:07:34 2008 +0300 +++ b/src/master/main.c Sun Oct 19 13:32:01 2008 +0300 @@ -42,6 +42,7 @@ char program_path[PATH_MAX]; char ssl_manual_key_password[100]; const char *env_tz; +bool auth_success_written; #ifdef DEBUG bool gdb; #endif @@ -99,6 +100,19 @@ i_error("unlink(%s) failed: %m", path); } +static void auth_warning_print(void) +{ + struct stat st; + + auth_success_written = stat(AUTH_SUCCESS_PATH, &st) == 0; + if (!auth_success_written) { + i_info("If you have trouble with authentication failures,\n" + "enable auth_debug setting. " + "See http://wiki.dovecot.org/WhyDoesItNotWork"); + + } +} + static void set_logfile(struct settings *set) { int facility; @@ -559,6 +573,8 @@ open_fds(); fatal_log_check(); + if (strcmp(settings_root->defaults->protocols, "none") != 0) + auth_warning_print(); if (!foreground) daemonize(settings_root->defaults);