Is it possible to disable pipelining in imapc?

Aki Tuomi aki.tuomi at dovecot.fi
Mon Sep 11 13:12:00 EEST 2017



On 11.09.2017 13:09, Nagy, Attila wrote:
> On 09/11/2017 11:14 AM, Aki Tuomi wrote:
>>
>> On 11.09.2017 11:59, Nagy, Attila wrote:
>>> On 09/11/2017 10:42 AM, Sami Ketola wrote:
>>>>> On 11 Sep 2017, at 11.24, Nagy, Attila <bra at fsn.hu> wrote:
>>>>> I use dovecot with a broken IMAP server (which doesn't properly
>>>>> implement command pipelining amongst others) as an imapc backend.
>>>>> Dovecot issues the above command sequence (SELECT and UID FETCH
>>>>> pipelined), which doesn't work with this server.
>>>>>
>>>>> Therefore I'm requesting an imapc_features setting,
>>>>> IMAPC_FEATURE_NO_PIPELINING, which disables PIPELINING in dovecot
>>>>> imapc. Similarly to other workarounds, like
>>>>> IMAPC_FEATURE_FETCH_MSN_WORKAROUNDS,
>>>>> IMAPC_FEATURE_FETCH_FIX_BROKEN_MAILS et al.
>>>> Dovecot IMAPC should not pipeline unless remote advertises pipelining
>>>> support in CAPABILITY response.
>>>> Are you saying that you have imap server which advertses support for
>>>> it but then does not support it
>>>> after all?
>>>>
>>> It's a capability in POP3 and an extension in (E)SMTP.
>>> I don't know about pipelining capability in IMAP (BTW, the server
>>> doesn't advertise such capability, in fact, it doesn't support any
>>> capabilities), it's standard, plain old IMAP RFC:
>>> https://tools.ietf.org/html/rfc3501#section-5.5
>>>
>>> The whole topic is about a bad IMAP server, which doesn't properly
>>> implement pipelining (hence IMAP RFC), like others, for which dovecot
>>> implements a workaround in imapc.
>> But are you using it like with doveadm? or proxying connection to? How
>> are you invoking imapc?
>>
> Dovecot acts as a frontend to this broken server and I redirect users
> with passdb/userdb via dict protocol, returning entries like:
>             js = {
>                   'password': '',
>                   'nopassword': '',
>                   'host':'imap_backend',
>                   'port':1430,
>                   'driver':'imap',
>                   'proxy_nopipelining':'y',
>                   'userdb_user':qdata['Auth-User'],
>                   'userdb_imapc_user':qdata['Auth-User'],
>                   'userdb_imapc_password':qdata['Auth-Pass'],
>                   'destuser':qdata['Auth-User'],
>                   }
>
> (and this is where I tried proxy_nopipelining as you can see, but of
> course it's irrelevant)

Is there some reason you can't use normal proxy instead of imap backend?
That is,return proxy, host=imap_backend, port=1430? There seems to be no
pipeline setting currently for imapc in v2.2.

Aki


More information about the dovecot mailing list