On Thu, 2007-12-20 at 19:10 +0100, Ronny wrote:
What happens when you change this:
diff -r d81c10f9b8ec src/login-common/main.c --- a/src/login-common/main.c Tue Dec 11 21:00:14 2007 +0200 +++ b/src/login-common/main.c Thu Dec 20 18:52:15 2007 +0200 @@ -359,7 +359,7 @@ int main(int argc __attr_unused__, char int i, fd = -1, master_fd = -1; bool ssl = FALSE;
- is_inetd = getenv("DOVECOT_MASTER") == NULL; + //is_inetd = getenv("DOVECOT_MASTER") == NULL;
#ifdef DEBUG if (!is_inetd && getenv("GDB") == NULL)
$ telnet localhost 143 Trying 127.0.0.1... Connected to zoidberg. Escape character is '^]'. FBUG: PROCESS_UID environment not given Connection closed by foreign host.
OK, so the problem is Dovecot master process isn't passing environment variables to child processes it creates. Does this change anything: diff -r d81c10f9b8ec src/master/main.c --- a/src/master/main.c Tue Dec 11 21:00:14 2007 +0200 +++ b/src/master/main.c Thu Dec 20 20:15:55 2007 +0200 @@ -69,7 +69,7 @@ void child_process_init_env(void) int facility; /* remove all environment, we don't need them */ - env_clean(); + //env_clean(); /* we'll log through master process */ env_put("LOG_TO_MASTER=1"); @@ -866,7 +866,7 @@ int main(int argc, char *argv[]) home = getenv("HOME"); /* clean up the environment of everything */ - env_clean(); + //env_clean(); /* put back the TZ */ if (env_tz != NULL)