On Mon, 2009-04-27 at 00:08 -0400, Victor Duchovni wrote: > On Mon, Apr 27, 2009 at 12:04:50AM -0400, Timo Sirainen wrote: > > > Oh. That's actually it. Dovecot is listening on private/auth, but Postfix > > is connecting to private/dovecot. But what is listening on private/dovecot > > then? You've added some kind of a "dovecot" service to master.cf? > > Almost certainly a pipe(8) transport.
Maybe it could give a better error message in that case. Something like: --- xsasl_dovecot_server.c.old 2009-04-26 21:43:05.000000000 -0400 +++ xsasl_dovecot_server.c 2009-04-26 21:42:57.000000000 -0400 @@ -253,7 +253,7 @@ VSTREAM *sasl_stream; char *line, *cmd, *mech_name; unsigned int major_version, minor_version; - int fd, success; + int fd, success, version_received; int sec_props; if (msg_verbose) @@ -279,7 +279,7 @@ msg_warn("SASL: Couldn't send handshake: %m"); return (-1); } - success = 0; + success = 0; version_received = 0; line_str = vstring_alloc(256); while (vstring_get_nonl(line_str, sasl_stream) != VSTREAM_EOF) { line = vstring_str(line_str); @@ -291,6 +291,7 @@ line = split_at(line, '\t'); if (strcmp(cmd, "VERSION") == 0) { + version_received = 1; if (sscanf(line, "%u\t%u", &major_version, &minor_version) != 2) { msg_warn("SASL: Protocol version error"); break; @@ -327,6 +328,8 @@ if (!success) { /* handshake failed */ + if (!version_received) + msg_warn("SASL: Protocol version not received. Connected to wrong socket?"); (void) vstream_fclose(sasl_stream); return (-1); }
signature.asc
Description: This is a digitally signed message part