#3566: ability to turn IMAP command pipelining on/off
--------------------------------------------+-------------------------------
Reporter: xrgtn | Owner: mutt-dev
Type: enhancement | Status: infoneeded_new
Priority: major | Milestone:
Component: mutt | Version: 1.5.21
Keywords: IMAP queue pipeline pipelining |
--------------------------------------------+-------------------------------
Changes (by brendan):
* status: new => infoneeded_new
Old description:
> Hello,
>
> At the moment imap.yandex.ru server doesn't understand pipelined IMAP
> commands at all. Turning off IMAP pipelining works around the problem.
> I've made 2 patches -- against 1.5.18 and against current HEAD
> (1.5.21+something).
>
> Patches introduce new configuration variable "imap_pipeline" which is on
> by default, but can be turned off by e.g. account-hook. There's one
> problem - option is global, while I'd prefer it to be set per IMAP server
> (somewhere inside *idata struct). As I understand, currently there's no
> method to do this with configuration variables? If I'm correct, the only
> viable solution would be to use pipelining until you connect to
> imap.yandex.ru server. After that, you should keep pipelining turned off,
> lest the yandex session may hang if you enable pipelining while switching
> to another IMAP server (I didn't test it yet).
>
> The patches differ slightly in behaviour, with the later one (for HEAD)
> being more clean and robust due to new IDLE/DONE handling. Both patches
> affect IMAP command queue handling significantly, so please review them
> carefully.
>
> Please consider including it in mutt,
>
> -- [[BR]]
> WBR,[[BR]]
> xrgtn
New description:
Hello,
At the moment imap.yandex.ru server doesn't understand pipelined IMAP
commands at all. Turning off IMAP pipelining works around the problem.
I've made 2 patches -- against 1.5.18 and against current HEAD
(1.5.21+something).
Patches introduce new configuration variable "imap_pipeline" which is on
by default, but can be turned off by e.g. account-hook. There's one
problem - option is global, while I'd prefer it to be set per IMAP server
(somewhere inside *idata struct). As I understand, currently there's no
method to do this with configuration variables? If I'm correct, the only
viable solution would be to use pipelining until you connect to
imap.yandex.ru server. After that, you should keep pipelining turned off,
lest the yandex session may hang if you enable pipelining while switching
to another IMAP server (I didn't test it yet).
The patches differ slightly in behaviour, with the later one (for HEAD)
being more clean and robust due to new IDLE/DONE handling. Both patches
affect IMAP command queue handling significantly, so please review them
carefully.
Please consider including it in mutt,
-- [[BR]]
WBR,[[BR]]
xrgtn
--
Comment:
First, I just tried connecting to imap.yandex.com with a test account and
it seemed to handle some basic pipelining. Second, does setting
`imap_pipeline_depth=0` not already do what you want?
--
Ticket URL: <http://dev.mutt.org/trac/ticket/3566#comment:1>
Mutt <http://www.mutt.org/>
The Mutt mail user agent