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)
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
On 09/11/2017 12:12 PM, Aki Tuomi wrote:> 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. >Yes, because it's a dumb IMAP server, which doesn't implement a lot of things, like SEARCH, FETCH BODYSTRUCTURE and similar. Dovecot is used as a smart proxy, which makes it possible to use it as a fully featured IMAP server.