Welcome! Log In Create A New Profile

Advanced

[nginx] Mail: handling of LOGIN IMAP command untagged response.

Anonymous User
November 26, 2024 10:10AM
details: https://github.com/nginx/nginx/commit/ce88b171236de50843dba2c427a8b3e42778f2ca
branches: master
commit: ce88b171236de50843dba2c427a8b3e42778f2ca
user: Sergey Kandaurov <pluknet@nginx.com>
date: Thu, 24 Oct 2024 00:52:21 +0400
description:
Mail: handling of LOGIN IMAP command untagged response.

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.

---
src/mail/ngx_mail_proxy_module.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/src/mail/ngx_mail_proxy_module.c b/src/mail/ngx_mail_proxy_module.c
index efed9ab3e..1c6d0372e 100644
--- a/src/mail/ngx_mail_proxy_module.c
+++ b/src/mail/ngx_mail_proxy_module.c
@@ -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;
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Mail: handling of LOGIN IMAP command untagged response.

Anonymous User 125 November 26, 2024 10:10AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 225
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready