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 at 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 at
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 at cs2c log]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get q1 at t.com_imap
VALUE q1 at t.com_imap 0 205
{"username":"q1 at
t.com","password":"{CRYPT}$1$d5ef98b7$brWKOJiUiqII3DysGzsfl\/","home":"\/test\/mail","mail":"maildir:\/t.com\/q1
at
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 at 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
}