Dear list, I created a dovecot mysql user with a password containing spaces. When I try to run doveadm fetch (to test the sql authentication), I get the following error message in the logs:
Feb 11 17:37:32 auth: Fatal: sqlpool: Missing value in connect string: xxx the connect line was: connect = "host=localhost dbname=mail user=dovecot password=xxx xxx xxx" The following code source taken from dovecot's github repo[1], suggests that the parsing relies on spaces as field separators. static int driver_mysql_parse_connect_string(struct mysql_db *db, const char *connect_string, const char **error_r) { const char *const *args, *name, *value; const char **field; db->ssl_cipher = "HIGH"; db->ssl_verify_server_cert = 1; db->connect_timeout = SQL_CONNECT_TIMEOUT_SECS; db->read_timeout = MYSQL_DEFAULT_READ_TIMEOUT_SECS; db->write_timeout = MYSQL_DEFAULT_WRITE_TIMEOUT_SECS; args = t_strsplit_spaces(connect_string, " "); for (; *args != NULL; args++) { value = strchr(*args, '='); if (value == NULL) { *error_r = t_strdup_printf("Missing value in connect string: %s", *args); return -1; } [...]
How do I supply the connection string in a suitable way? References: [1] dovecot source code on github https://github.com/dovecot/core/blob/main/src/lib-sql/driver-mysql.c#L194 Troubleshooting info: Dovecot v2.3.19.1 (9b53102964) starting up for imap, lmtp, pop3 (core dumps disabled) on Debian 12 -- yassine -- sysadm +213-779 06 06 23 http://about.me/ychaouche Looking for side gigs. _______________________________________________ dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-le...@dovecot.org