Is it possible to disable pipelining in imapc?

Nagy, Attila bra at fsn.hu
Mon Sep 11 13:09:28 EEST 2017


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)


More information about the dovecot mailing list