dovecotのmysqlパスワードにスペースがある場合、どの構文を使用する必要がありますか?

dovecotのmysqlパスワードにスペースがある場合、どの構文を使用する必要がありますか?

mysqlにアクセスするようにDovecotを設定しようとしていますが、mysqlパスワードに空白があるため機能しません。

driver = mysql
connect = "host=localhost dbname=postfix user=postfix password=blah bluh blih"

Thunderbird/Evoution で自分のメールボックスにアクセスしようとすると、次のエラーが発生します。

Jan 05 14:41:11 mx1 dovecot[28895]: auth: Fatal: mysql: Missing value in connect string: bluh

動作させる正しい構文が見つかりません。誰にもアイデアがありますか?

ベストアンサー1

Dovecotのソースコードは、スペースを使用して接続文字列のフィールドを区切ります。
したがって、空白のないパスワードを使用することをお勧めします。
バラよりこの議論MLでは
これを参照します。鳩のソースコードの一部

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;
        }
[...] 

おすすめ記事