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);
     }

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to