[Dovecot] dovecot-2.0-pigeonhole/ManageSieve: wrong service name
Hi Stephan,
ManageSieve uses the wrong™ service name for the authdb lookup. With dovecot-1.2-managesieve the service name was changed from 'managesieve' to 'sieve'. So I altered my table layout in order to make the query "SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls" work again.
When I try to login on the sieve port 4190/tcp, I find this in my dovecot.log:
auth: Error: pgsql: Query failed, retrying: ERROR: column "managesieve" does not exist auth: Error: LINE 1: ...", password FROM dovecotpassword('user', 'example.org') WHERE managesiev...
Regards, Pascal
The trapper recommends today: defaced.1015004@localdomain.org
Hi Pascal,
Pascal Volk wrote:
ManageSieve uses the wrong™ service name for the authdb lookup. With dovecot-1.2-managesieve the service name was changed from 'managesieve' to 'sieve'. So I altered my table layout in order to make the query "SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls" work again.
When I try to login on the sieve port 4190/tcp, I find this in my dovecot.log:
auth: Error: pgsql: Query failed, retrying: ERROR: column "managesieve" does not exist auth: Error: LINE 1: ...", password FROM dovecotpassword('user', 'example.org') WHERE managesiev...
Hmm, you are right. It got changed implicitly by Dovecot v2.0 API changes. I cannot fix this by myself however. In Dovecot, client_auth_begin (src/login-common/client-common-auth.c) statically uses login_binary.protocol as the protocol name for SASL authentication (in v1.2 I would call the sasl API directly), so there is no way for me to alter this to "sieve" because the protocol name for Dovecot is "managesieve". Timo will have to create some means to fix this. As we have seen earlier, fully changing the protocol name from "managesieve" to "sieve" is a bad idea, for one because it causes much confusion.
Timo, can you take a look at this?
Regards,
Stephan.
On su, 2010-05-30 at 10:12 +0200, Stephan Bosch wrote:
As we have seen earlier, fully changing the protocol name from "managesieve" to "sieve" is a bad idea, for one because it causes much confusion.
Timo, can you take a look at this?
Well, what parts should now be called managesieve and what parts sieve? There are at least:
- process name (clearly managesieve)
- service name for auth lookups
- service name for access lookups (tcpwrappers)
- service name when logging %s in login_log_format_elements
- inet_listener name
Timo Sirainen wrote:
Well, what parts should now be called managesieve and what parts sieve? There are at least:
- process name (clearly managesieve)
Yeah.
- service name for auth lookups
"sieve" as by the draft spec (page 12):
`The service name specified by this protocol's profile of SASL is "sieve".'
- serice name for access lookups (tcpwrappers)
I would say "sieve"
- service name when logging %s in login_log_format_elements
Correlates with the first one; "managesieve"
- inet_listener name
"sieve", as per /etc/services
Regards,
Stephan.
On ma, 2010-05-31 at 19:53 +0200, Stephan Bosch wrote:
- service name when logging %s in login_log_format_elements
Correlates with the first one; "managesieve"
If everything except process and binary name is now "sieve", and %s expands to "sieve" in auth process also, I'd say this is "sieve" too and the solution is to just set protocol_name="sieve".
participants (3)
-
Pascal Volk
-
Stephan Bosch
-
Timo Sirainen