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
