hi :
i just install dovecot-2 and start ok but login failed for test-user . i turn on all debug options , the debug info follow:
"Mar 25 14:40:10 cs2c dovecot: imap-login: Disconnected (auth failed, 1 attempts): user=<q1@t.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured"
and the info of input->w_buffer is : cp01 CAPABILITY a001 LOGIN "q1@t.com" "q1q1q1q1"
the auth of dovecot.conf:
>>>>>>>>>>>>>>>
passdb { args = /etc/dovecot.master driver = passwd-file master = yes pass = yes } passdb { args = /etc/dovecot-memcached.conf driver = dict }
userdb { args = /etc/dovecot-memcached.conf driver = dict }
[root@cs2c log]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get q1@t.com_imap VALUE q1@t.com_imap 0 205 {"username":"q1@t.com","password":"{CRYPT}$1$d5ef98b7$brWKOJiUiqII3DysGzsfl\/","home":"\/test\/mail","mail":"maildir:\/t.com\/q1@t.com","quota_rule2":"*:messages=11111","quota_rule":"*:bytes=11650727936"} END
>>>>>>>>>>>>>>>>>>>>>>>>
The relevant code is:
>>>>>>>login-common/client-common.c<<<<<<< bool client_read(struct client *client) {
switch (i_stream_read(client->input)) { //w_buffer:cp01 CAPABILITY a001 LOGIN "q1@t.com" "q1q1q1q1" case -2: /* buffer full */ client_send_line(client, CLIENT_CMD_REPLY_BYE, "Input buffer full, aborting"); client_destroy(client, "Disconnected: Input buffer full"); return FALSE; case -1:
/* disconnected */ client_destroy(client, "Disconnected"); //debug infomation return FALSE;
case 0:
/* nothing new read */ return TRUE; default:
/* something was read */ return TRUE; }
}
>>>>imap-login/client.c<<<<<<<<<<
static void imap_client_input(struct client *client) { struct imap_client *imap_client = (struct imap_client *)client;
if (!client_read(client))
return;
client_ref(client);
o_stream_cork(imap_client->common.output);
for (;;) {
if (!auth_client_is_connected(auth_client)) {
/* we're not currently connected to auth process -
don't allow any commands */
client_send_line(client, CLIENT_CMD_REPLY_STATUS,
AUTH_SERVER_WAITING_MSG);
if (client->to_auth_waiting != NULL)
timeout_remove(&client->to_auth_waiting);
client->input_blocked = TRUE;
break;
} else {
if (!client_handle_input(imap_client))
break;
}
}
o_stream_uncork(imap_client->common.output);
client_unref(&client);
}
>>>>>>>>other-dovecot.conf>>>>>>>>>>>>>>>>>>>>>>>>>>>>
..........
protocols = pop3 imap service auth { unix_listener /var/spool/postfix/dovecot-auth { group = postfix mode = 0666 user = postfix } unix_listener auth-master { group = testmail mode = 0666 user = testmail } user = testmail } service imap-login { service_count = 1 } service imap { drop_priv_before_exec = no executable = /usr/libexec/dovecot/imap } service pop3-login { service_count = 1 } service pop3 { drop_priv_before_exec = yes executable = /usr/libexec/dovecot/pop3 } ssl_cert = </etc/pki/NSMail/SSL.cert ssl_key = </etc/pki/NSMail/SSL.key
userdb { args = /etc/dovecot-memcached.conf driver = dict } protocol lda { auth_socket_path = /var/run/dovecot/auth-master log_path = /var/log/sieve.log mail_plugins = menc sieve quota acl expire postmaster_address = root } protocol imap { mail_plugins = quota imap_quota zlib mdec imap_acl acl autocreate expire } #protocol vipimap { # mail_plugins = quota imap_quota zlib mdec imap_acl acl autocreate expire #} protocol pop3 { mail_plugins = quota zlib mdec expire pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_no_flag_updates = yes pop3_uidl_format = %08Xu%08Xv }