#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