diff -urdpNX /usr/share/dontdiff dovecot-1.0.beta8.vanilla/src/lib/var-expand.c dovecot-1.0.beta8/src/lib/var-expand.c --- dovecot-1.0.beta8.vanilla/src/lib/var-expand.c 2006-04-13 06:00:06.000000000 +0400 +++ dovecot-1.0.beta8/src/lib/var-expand.c 2006-07-24 17:25:12.956083944 +0400 @@ -87,6 +87,21 @@ static const char *m_str_md5(const char return binary_to_hex(digest, sizeof(digest)); } +static const char *m_str_ldap_dn(const char *str, struct var_expand_context *ctx __attr_unused__) +{ + string_t *ret = t_str_new(256); + + while (*str) { + if (*str == '.') + str_append(ret, ",dc="); + else + str_append_c(ret, *str); + str++; + } + + return str_free_without_data(&ret); +} + #define MAX_MODIFIER_COUNT 10 static const struct var_expand_modifier modifiers[] = { { 'L', m_str_lcase }, @@ -96,6 +111,7 @@ static const struct var_expand_modifier { 'R', m_str_reverse }, { 'H', m_str_hash }, { 'M', m_str_md5 }, + { 'D', m_str_ldap_dn }, { '\0', NULL } };