Mail: handling of LOGIN IMAP command untagged response.
Some checks are pending
buildbot / buildbot (push) Waiting to run

In particular, an untagged CAPABILITY response as described in the
interim RFC 3501 internet drafts was seen in various IMAP servers.
Previously resulted in a broken connection, now an untagged response
is proxied to client.
This commit is contained in:
Sergey Kandaurov 2024-10-24 00:52:21 +04:00 committed by pluknet
parent b2a67d2614
commit ce88b17123

View File

@ -1019,12 +1019,36 @@ ngx_mail_proxy_read_response(ngx_mail_session_t *s, ngx_uint_t state)
break;
case ngx_imap_passwd:
/*
* untagged CAPABILITY response (draft-crispin-imapv-16),
* known to be sent by SmarterMail and Gmail
*/
if (p[0] == '*' && p[1] == ' ') {
p += 2;
while (p < b->last - 1) {
if (p[0] == CR && p[1] == LF) {
p += 2;
break;
}
p++;
}
if (b->last - p < 4) {
return NGX_AGAIN;
}
}
if (ngx_strncmp(p, s->tag.data, s->tag.len) == 0) {
p += s->tag.len;
if (p[0] == 'O' && p[1] == 'K') {
return NGX_OK;
}
}
break;
}